草庐IT

mbedtls_printf

全部标签

c++ - 像 printf 函数一样构建字符串

printf("%d.%d.%d",year,month,day);我可以做同样的事情但不打印吗?char*date="%d.%d.%d",year,month,day;或者也许其他一些简单的方法可以做到这一点? 最佳答案 在普通的c中有asprintf()它将分配内存来保存结果字符串:#includechar*date;asprintf(&date,"%d.%d.%d",year,month,day);(省略错误处理)既然您已经标记了C++,您可能想要使用C++解决方案。 关于c++-

c++ - printf 使用堆栈?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:confusedaboutprintf()thatcontainsprefixandpostfixoperators.我遇到了一段包含以下片段的代码,intmain(){intc=100;printf("\n%d\t%d\n",c,c++);return0;}我预计输出为100和101但我得到的输出为101100谁能帮我知道为什么?

c++ - printf 会导致未定义的行为吗?

这个问题在这里已经有了答案:Whydoesprintf("%f",0);giveundefinedbehavior?(10个答案)关闭6年前。intmain(){unsignedinti=12;printf("%lu",i);//Thisyieldsacompilerwarning}在32位平台上,使用printf和使用%lu的int会产生垃圾吗?

c++ - 在 Mac OSX 和 Linux 下使用 printf 语句进行类型转换

我有一些代码在MacOSX和Linux(Ubuntu、Fedora等)下表现不同。这是关于printf语句中算术运算中的类型转换。代码使用gcc/g++编译。以下内容#includeintmain(){floatdays=(float)(153*86400)/86400.0;printf("%f\n",days);floatfoo=days/30.6;printf("%d\n",(int)foo);printf("%d\n",(int)(days/30.6));return0;}在Linux上生成153.00000054在MacOSX上153.00000055为什么?令我惊讶的是,这适

c++ - 在 C 中使用 printf 等效于 C++ std::setprecision(20)

我想以十进制表示法完全精确地打印double(但数字末尾没有额外的零)。在C++中,我可以使用:std::setprecision(20);cout使用printf的等效C代码是什么? 最佳答案 您可以使用“%.20g”说明符。g恕我直言,通常比f好,因为它不打印尾随零,并且明智地处理大/小值(更改为e格式)。另请注意,使用“g”说明符时,精度(在本例中为“20”)指定有效位数而不是小数点后的位数。 关于c++-在C中使用printf等效于C++std::setprecision(20)

C++ printf std::vector

我如何在C++中做这样的事情:voidmy_print(format_string){vectordata;//Fillsvectorprintf(format_string,data);}my_print("%1$s-%2$s-%3$s");my_print("%3$s-%2$s);之前没解释好。格式字符串由应用程序用户输入。在C#中这有效:voidmy_print(format_string){Listdata=newList();//FillslistConsole.WriteLine(format_string,data.ToArray);}my_print("{0}-{1}-

c++ - 结构的Printf? (C/C++, VC2008)

只需在VC2008中构建并运行:structA{inta;intb;intc;};Aa={10,20,30};printf("%d%d%d\n",a);这正常吗?102030我要投!但它不起作用:structA{inta;intb;intc;operatorint(){returna+b+c;}};Aa={10,20,30};printf("%d\n",a);输出只有:10我需要自动转换模板实用程序。这是:https://code.google.com/p/boolib/source/browse/boolib/crypt/ShakedValue.h它应该隐藏在内存中的值(value)

c++ - Printf() - 打印字符限制

我正在尝试查找C标准中printf()打印的字符数的允许限制是多少。我只找到了answer在论坛中,表示INT_MAX。例如,我检查了以下内容:#include//INT_MAX2147483647intmain(){intx=3;inty=printf("%2147483647d\n\n",x);-->ConfirmsINT_MAX?//IfIchangetheaboveto2147483648,yinsetto-1printf("y=%d\n\n",y);return0;}我想问一下为什么printf()受限于INT_MAX?谁能指出C标准推理或源代码引用?编辑我找到的最接近的答案

c++ - 整数提升、有符号/无符号和 printf

我正在浏览C++IntegerOverflowandPromotion,试图复制它,最后得到了这个:#include#includeusingnamespacestd;intmain(){inti=-15;unsignedintj=10;coutcout和第二个printf一样,都打印了4294967291。第一个printf,但是,打印-5。现在,我的猜测是printf只是将4294967291的无符号值解释为有符号值,以-5结尾(这适合看到4294967291的2的补码是11...11011),但我不是100%相信我没有忽略任何东西。那么,我是对的还是这里发生了其他事情?

c++ - 带有 const char* 变量的 printf 问题

我陷入了printf问题。如果我能在这里得到一些帮助,我将不胜感激:在下面的代码中,我可以看到字体系列在第一个printf()中被正确置换,但是如果我将它设置为变量,我只会得到一个空字符串。我怎样才能把它放在一个变量中并获得正确的值?我只是不想到处输入“font.family().family().string().utf8().data()”?我用同样的方法做了这个:voidmyMethod(){constchar*fontFamily=font.family().family().string().utf8().data();//getdisplayedcorrectlyprint