jjzjj

创建一个将数据发送到 sprintf 和普通 printf 的 my_printf?

我正在玩printf和想法编写一个调用普通printf的my_printf(...)以及将结果发送到特殊函数的sprintf。(我在考虑sprintf,因为它在大多数平台上的行为就像printf)。我的想法是编写一个小宏来执行此操作:#definemy_printf(X,Y...)do{printf(X,##Y);\char*data=malloc(strlen(X)*sizeof(char));\sprintf(data,X,##Y);\other_print(data);\free(data);}while(0)但是由于sprintf可以将字符串扩展到比X大得多的大小,该方法几乎直

c - 更好的 sprintf?

我是C的新手。最近我一直在研究一个系统,该系统通过套接字、MQSeries和其他途径从许多其他系统获取输入。基本上,我的工作是将这些不同的源放在一起,并将它们放入一种自己开发的类似XML的格式中,然后将它们存储在适当的数据库中,或者将它们传递到其他系统。因此,我一直都在创建格式化字符串。。非常简单,它们看起来像这样:"lotsastringdata...repeatadadnauseam"所以我开始使用sprintf和vsprintf很容易制定一个例程来将sprintf的格式字符串连接在一起,但问题是我没有高级知道我收到的字符串的长度,所以很难知道要分配的缓冲区的大小。我得到的字符串可

c - 更好的 sprintf?

我是C的新手。最近我一直在研究一个系统,该系统通过套接字、MQSeries和其他途径从许多其他系统获取输入。基本上,我的工作是将这些不同的源放在一起,并将它们放入一种自己开发的类似XML的格式中,然后将它们存储在适当的数据库中,或者将它们传递到其他系统。因此,我一直都在创建格式化字符串。。非常简单,它们看起来像这样:"lotsastringdata...repeatadadnauseam"所以我开始使用sprintf和vsprintf很容易制定一个例程来将sprintf的格式字符串连接在一起,但问题是我没有高级知道我收到的字符串的长度,所以很难知道要分配的缓冲区的大小。我得到的字符串可

php - 将变量参数列表传递给 sprintf()

我想编写一个函数(除其他外)接受可变数量的参数,然后将它们传递给sprintf()。例如:我如何在PHP中执行此操作? 最佳答案 functionsome_func(){$args=func_get_args();$s=call_user_func_array('sprintf',$args);}//orfunctionsome_func(){$args=func_get_args();$var=array_shift($args);$s=vsprintf($var,$args);}$args临时变量是必需的,因为func_get_

php - 将变量参数列表传递给 sprintf()

我想编写一个函数(除其他外)接受可变数量的参数,然后将它们传递给sprintf()。例如:我如何在PHP中执行此操作? 最佳答案 functionsome_func(){$args=func_get_args();$s=call_user_func_array('sprintf',$args);}//orfunctionsome_func(){$args=func_get_args();$var=array_shift($args);$s=vsprintf($var,$args);}$args临时变量是必需的,因为func_get_

php - 显示不带科学计数法的浮点值

当我在PHP中进行以下乘法时:$ret=1.0*0.000000001;我得到结果:1.0E-9我想把这个结果转换成普通的十进制,我该怎么做?sprintf('%f',$ret)不起作用,它返回0.000000。溢出? 最佳答案 sprintf('%f',$ret)doesn'twork,itreturns0.000000.Overflow?sprintf有效,但是您在这里错过了一些要点。0.000000没有溢出。只是%f修饰符的sprintf默认使用6位数字。另外请注意%f是区域设置感知的,%F可能更适合。您可能想使用更多数字,例

php - 显示不带科学计数法的浮点值

当我在PHP中进行以下乘法时:$ret=1.0*0.000000001;我得到结果:1.0E-9我想把这个结果转换成普通的十进制,我该怎么做?sprintf('%f',$ret)不起作用,它返回0.000000。溢出? 最佳答案 sprintf('%f',$ret)doesn'twork,itreturns0.000000.Overflow?sprintf有效,但是您在这里错过了一些要点。0.000000没有溢出。只是%f修饰符的sprintf默认使用6位数字。另外请注意%f是区域设置感知的,%F可能更适合。您可能想使用更多数字,例

php - 为什么 sprintf() 不输出任何东西?

我以前从未使用过这些函数,但在阅读了很多关于sprintf()的内容后,我决定我应该了解它。所以我继续进行了以下操作。functioncurrentDateTime(){list($micro,$Unixtime)=explode("",microtime());$sec=$micro+date("s",$Unixtime);$sec=mb_ereg_replace(sprintf('%d',$sec),"",($micro+date("s",$Unixtime)));returndate("Y-m-dH:i:s",$Unixtime).$sec;}sprintf(currentDat

php - 为什么 sprintf() 不输出任何东西?

我以前从未使用过这些函数,但在阅读了很多关于sprintf()的内容后,我决定我应该了解它。所以我继续进行了以下操作。functioncurrentDateTime(){list($micro,$Unixtime)=explode("",microtime());$sec=$micro+date("s",$Unixtime);$sec=mb_ereg_replace(sprintf('%d',$sec),"",($micro+date("s",$Unixtime)));returndate("Y-m-dH:i:s",$Unixtime).$sec;}sprintf(currentDat

php - PHP中变量扩展与sprintf的性能

关于性能,做之间有什么区别吗:$message="Therequest$requesthas$nerrors";和$message=sprintf('Therequest%shas%derrors',$request,$n);在PHP中?我会说调用一个函数涉及更多的东西,但我不知道PHP在幕后做了什么来扩展变量名称。谢谢! 最佳答案 没关系。任何性能提升都是微不足道的,您只会在10000或100000次迭代中看到它(作为百分之一秒的改进)——即使那样。具体数字见thisbenchmark。您可以看到它必须使用100,000次函数调用