草庐IT

mbedtls_printf

全部标签

c++ - 如果 printf ("%c%c",'A' ,8);删除A,为什么不能printf ("%c%c",'\n' ,8);删除新行?我该怎么做?

如何在C代码中删除换行符?我想写一堆行并删除它们,然后在暂停后打印一些其他行然后删除它们......在一个循环中。就像无需滚动的实时更新。我可以打印字符并通过打印退格字符删除它们,但是一旦我打印新行,我就无法删除创建的行。有什么办法可以实现吗? 最佳答案 退格字符'\b'(ASCII8)移动到行内的上一个位置。如果您在xterm或vt100下兼容,您可以使用consolecodes:#include#include/*forsleep()*/intmain(void){printf("Line\n");sleep(2);printf

c++ - 如何在 Linux 上获得等效的 printf_l?

此函数存在于OSX上,允许您将自定义本地传递给该函数。setlocale不是线程安全的,将语言环境作为参数传递是线程安全的。如果没有等效项,任何与区域设置无关的printf或仅用于double(%g)的printf都可以。 最佳答案 你可以试试uselocale,它在调用printf之前设置线程区域设置(而不是进程区域设置)。 关于c++-如何在Linux上获得等效的printf_l?,我们在StackOverflow上找到一个类似的问题: https://s

c++ - 使用 C++ 字符串函数自动替换 s​​printf 函数

我们有大量使用sprintf和cstrings构造文件名的“演示”代码。我想用C++字符串替换它以允许非常长的文件名,因为它提供了更清晰的语法。所以本质上我们需要像这样转换blockofstreamsome_file;charfilename[100];sprintf(filename,"%s/soln%i.dat",a.c_str(),b);some_file.open(filename);变成类似的东西ofstreamsome_file((a+"soln"+to_string(b)+".dat").c_str());然而,因为它用在很多地方,所以我想使用某种自动转换(即sed表达式

c++ - 地址 sanitizer : "SEGV on unknown adress" when using throw-catch and printf

当我扔东西时,例如一个int或一个charconst*,并使用printf检查错误,我得到一个AddressSanitizerError。我无法在网上找到任何类似的东西,而且我的代码示例非常基础,以至于我真的不明白它怎么可能会产生错误。精简代码示例:#includeintmain(){try{throw42;}catch(intmsg){printf("%d\n",msg);}return0;}运行代码时的控制台输出:ASAN:SIGSEGV===================================================================16533=

c++ - 为什么 Boost Format 和 printf 在相同的格式字符串上表现不同

TheBoostFormatdocumentation说:Oneofitsgoalistoprovideareplacementforprintf,thatmeansformatcanparseaformat-stringdesignedforprintf,applyittothegivenarguments,andproducethesameresultasprintfwouldhave.当我使用相同的格式字符串比较boost:format和printf的输出时,我得到了不同的输出。在线例子是here#include#includeintmain(){boost::formatf("

c++ - 如何在 vim 中将 C 风格的 printf 转换为 C++ 风格的 cout

我移交了一些遗留代码,首先我想看看是否有可能改变类似的东西printf("test%d\n",var);进入std::cout其中有很多,手动完成它们非常耗时。有没有办法使用vim来实现这一点?我得到的最远的是:%s/printf(\(.*\),\(.*\));/std::cout但这只会让我着迷std::cout我可以将clang格式应用于代码,因此在printf中我可以保证逗号后始终有一个空格。在此示例中,空格位于逗号和var之间。理想情况下,此vim命令将能够检测百分号以了解其中有多少变量,还可以检测\n以了解何时将其替换为std::endl。请指教。

用于调用 printf 的 C++11 编译时格式字符串文字构造

我想做的是创建:templateintprintln(Args...){//implementationwhichcalls://printf("",args...);//additionalperkwouldbecompiletimetypechecking//Iexpecttoprovideaformatstringforeachtypebysometemplate//specialization.}我一直在用编译时字符串文字分析两个有趣的工作:编译时内存对齐的字符串文字https://stackoverflow.com/a/22067775/403571100%constexpr

c++ - 调用 printf 时隐式转换为 char*

我在我的C++GUI应用程序中使用Unicode字符串作为图标,我想摆脱所有散落在周围的u8"\uf118"魔法字符串,并在途中制作这些字符串是它们自己的一种类型。所以我创建了一个这样的类:structicon{explicitconstexpricon(constchar(&unicode_icon)[4]):_icon{unicode_icon[0],unicode_icon[1],unicode_icon[2],unicode_icon[3]}{}operatorconstchar*()const{return_icon.data();}private:std::array_ic

c++ - 如何在 C++ 代码中将我的 printf 语句限制为每行 80 个字符?

我的教授要求我的代码每行不超过80个字符,但我有一些printf语句超过了这个限制。有没有办法在不更改输出的情况下将此语句分成两行或更多行?请求示例:printf("\n%-20s%-4d%-20s%-4d%-20s%-4d\n%-20s%-4d%-20s%-4d%-20s%-4d\n%-20s%-4d%-20s%-4d%-20s%-4d\n%-20s%-4d%-20s%-4d%-20s%-4d\n%-20s%-4d%-20s%-4d\n","1-Ones",ones,"2-Twos",twos,"3-Threes",threes,"4-Fours",fours,"5-Fives",f

c++ - 为什么在 C++ 中使用 <cstdio> 而不是 <stdio.h> 时 "std::printf"和 "printf"都会编译?

这个问题在这里已经有了答案:WhenusingCheadersinC++,shouldweusefunctionsfromstd::ortheglobalnamespace?(8个答案)关闭5年前。据我所知,cxyz格式的header与xyz.h相同,唯一的区别是cxyz将所有命名空间std下的xyz.h的内容。为什么以下程序在GCC4.9和clang6.0上都能编译?#includeintmain(){printf("Testing...");return0;}和第二个程序:#includeintmain(){std::printf("Testing...");return0;}FI