草庐IT

xil_printf

全部标签

objective-c - 如何将 printf 与 NSString 一起使用

我需要使用类似NSLog但没有时间戳和换行符的东西,所以我使用的是printf。如何将它与NSString一起使用? 最佳答案 您可以通过调用UTF8String方法将NSString转换为UTF8字符串:printf("%s",[stringUTF8String]); 关于objective-c-如何将printf与NSString一起使用,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

objective-c - NSInteger 的 NSLog/printf 说明符?

NSInteger在32位平台上是32位,在64位平台上是64位。是否有一个总是匹配NSInteger大小的NSLog说明符?设置Xcode3.2.5llvm1.6编译器(这很重要;gcc不这样做)GCC_WARN_TYPECHECK_CALLS_TO_PRINTF开启这让我有些悲伤:#importintmain(intargc,constchar*argv[]){@autoreleasepool{NSIntegeri=0;NSLog(@"%d",i);}return0;}对于32位代码,我需要%d说明符。但是,如果我使用%d说明符,则在编译64位时会收到警告,建议我改用%ld。如果我

c++ - 格式化 IO 函数 (*printf/*scanf) 中的转换说明符 %i 和 %d 有什么区别

%d和%i在printf和scanf中用作格式说明符时有什么区别? 最佳答案 它们在用于输出时是相同的,例如用printf.但是,当用作输入说明符时,这些是不同的,例如使用scanf,其中%d将整数扫描为带符号的十进制数,但%i默认为十进制但也允许使用十六进制(如果前面有0x)和八进制(如果前面有0)。所以033将是27与%i但33与%d。 关于c++-格式化IO函数(*printf/*scanf)中的转换说明符%i和%d有什么区别,我们在StackOverflow上找到一个类似的问题:

JavaScript 等价于 printf/String.Format

我正在寻找与C/PHPprintf()或C#/Java程序员等效的良好JavaScriptString.Format()(.NET的IFormatProvider)。我现在的基本要求是数字的千位分隔符格式,但处理大量组合(包括日期)的格式会很好。我意识到微软的Ajax库提供了一个版本的String.Format(),但我们不想要该框架的全部开销。 最佳答案 当前的JavaScript从ES6开始,您可以使用模板字符串:letsoMany=10;console.log(`Thisis${soMany}timeseasier!`);//

c++ - printf() 中宽度小于精度的意义何在?

我遇到了一些代码,其中一行如下所示:fprintf(fd,"%4.8f",ptr->myFlt);这些天不太使用C++,我阅读了有关printf及其同类的文档,并了解到在这种情况下4是“宽度”,而8是“精度”。宽度定义为输出占用的最小个空格,如果需要,用前导空格填充。既然如此,我无法理解像“%4.8f”这样的模板有什么意义,因为该点之后的8个(必要时补零)小数已经确保满足和超过4的宽度。所以,我用VisualC++写了一个小程序://Formattingwidthtest#include"stdafx.h"int_tmain(intargc,_TCHAR*argv[]){printf(

c - printf中的 "%.6d"是什么意思

%.6d是什么意思:printf("%s.%.6dlen:%d",timestr,header->ts.tv_usec,header->len);是不是打错字了?看来%.6d和%6d是一样的。 最佳答案 %.6dInthe.precisionformatforintegerspecifiers(d,i,o,u,x,X),precisionspecifiestheminimumnumberofdigitstobewritten.Ifthevaluetobewrittenisshorterthanthisnumber,theresult

C++11 可变参数 Printf 性能

可变参数模板是在c++11中引入的。我发现printf函数可以用它来替换。但是,在实现中使用了cout。我想知道是否可以使用其他东西来实现类型安全但又不会牺牲太多性能。voidsafe_printf(constchar*s){while(*s){if(*s=='%'){if(*(s+1)=='%'){++s;}else{throw"invalidformatstring:missingarguments";}}std::coutvoidsafe_printf(constchar*s,T&value,Args...args){while(*s){if(*s=='%'){if(*(s+1)

c - printf 中的可变大小填充

有没有办法在printf中使用可变大小的填充?我有一个整数表示填充有多大:voidfoo(intpaddingSize){printf("%...MyText",paddingSize);}这应该打印出###MyText其中paddingSize应该决定'#'符号的数量。 最佳答案 是的,如果您在格式字符串中使用*,它会从参数中获取一个数字:printf("%0*d\n",3,5);将打印“005”。请记住,您只能使用空格或零填充。如果你想用其他东西填充,你可以使用类似的东西:#include#includeintmain(void

c - 打印 printf 中正数的前导 '+'

我有一个温度转换程序作为作业,我已经完成了。该程序中有许多打印温度的printf语句。现在负温度按我想要的方式打印,但正温度打印时没有前导+符号。现在让printf打印正数的前导+符号的最佳方法是什么。我能想到的就是改变printf("Mintemp=%d\n",max_temp)到if(max_temp>0)printf("+");printf("Mintemp=%d\n",max_temp)但这需要对程序进行许多更改:(另一种选择是编写我自己的打印函数并将这个逻辑放在那里。你有什么建议? 最佳答案 您可以使用printf的+标志

c - 如何填充 printf 以考虑负号和可变长度数字?

我正在尝试在日志文件中输出一些数字,我想通过printf函数填充大量float以生成:058.0020.0038.0-050.0800.0150.0100.0目前我正在这样做:printf("%03.1f\n",myVar);...其中myVar是一个float。该语句的输出如下所示:58.020.038.0-50.0800.0150.0100.0来自whatI'veread我希望我的代码能够产生我在这篇文章顶部提到的输出,但显然有问题。一次只能使用一个标志吗?..还是这里发生了其他事情? 最佳答案 宽度说明符是完整的宽度:prin