草庐IT

c# - 翻译 C+ +'s sprintf format string to C#' s string.Format

我找到了下面的C++代码(注释是我自己加的)://frame_nameisachararray//prefixisstd::string//kisaforloopcounter//framesisastd::vectorstringsprintf(frameName,"%s_%0*s.bmp",prefix.c_str(),k,frames[k].c_str());然后我尝试将它翻译成C#//prefixisstring//kisaforloopcounter//framesisListstringframeName=string.Format("{0}_(whatgoesinhere

c++ - 双值的 sprintf 格式化

我在UNIX中使用sprintf()将double值转换为字符串时遇到一个特定问题。例如我有两个值:doublea=0.009984354523452;doubleb=0.01;在转换时,我正在使用:sprintf(somestringvar,"Doublevalue:%.15f\n",a);sprintf(diffstringvar,"Doublevalue:%.15f\n",b);转换为字符串。我的问题是'a',值打印正确,但对于'b'的值,在尾端附加了0。请提供将“a”和“b”表示为精确值的任何常用方法。 最佳答案 打印b时得

C++ : Why I can't print a const char* with sprintf?

我在这里错过了什么?这让我抓狂!我有一个返回constchar*的函数constchar*Notation()const{chars[10];intx=5;sprintf(s,"%d",x);returns;}现在在代码的另一部分我正在这样做:..........charstr[50];sprintf(str,"%s",Notation());..........但str保持不变。如果我这样做:..........charstr[50];str[0]=0;strcat(str,Notation());..........str设置正确。我想知道为什么sprintf没有按预期工作...

c++ - 禁止使用 __sprintf_chk()

我观察到c++程序使用sprintf,其中此sprintf隐式调用__sprintf_chk()。此__sprintf_chk()似乎通过检查堆栈帧来检查缓冲区溢出。为了我的研究目的,我想知道是否可以使用__sprintf_chk()来禁用它? 最佳答案 尝试将程序中对sprintf的所有调用替换为:sprintf(params...);进入(sprintf)(params...);这将禁用任何基于预处理器的sprintf更改(*仅当sprintf被使用类似函数的宏更改时,如__sprintf_chk的情况)。对于gcc,有选项-f

c++ - 编写 c++ 函数 format_string 进行格式化,如 std::string 的 sprintf

为了方便使用,我想编写类似于sprintf的格式化函数,只返回std::string,如下所示:std::stringformat_string(constchar*format,...)我可以在那里使用vsnprintf但有问题-我事先不知道临时缓冲区应该有多长。Microsoft上有函数_vscprintf可以做到这一点,但我认为它不可移植?一个选项是让临时缓冲区开始一些已知的大小,然后如果发现它不够用vsnprintf增加它。有更好的方法吗?谢谢附言请在没有提升的情况下给出答案。我知道Boost,但我很好奇如何在没有Boost的情况下实现它。 最佳答案

c++ - 为什么 sprintf_s 在不同版本的 Visual Studio 中给出不同的结果?

sprintf_s(buf,"%.*f",14,0.182696884245135);在VS2008中=0.18269688424514在VS2015中=0.18269688424513sprintf_s的行为是否改变了?我怎样才能得到旧的行为? 最佳答案 我们为theUniversalCRT重写了浮点解析器和格式化程序和VisualC++2015以提高正确性。查看BreakingChangesinVisualC++VisualC++2015文档;有一节标题为“浮点格式和解析”。VisualC++2015结果是正确舍入的结果。输入字

php - sprintf 多次使用相同的值

我试图在使用sprintf时在不同的地方使用相同的值,但失败了。我收到此错误:注意:C:\web\apache\htdocs\sprintf.php中第6行的undefinedvariable:s警告:sprintf():C:\web\apache\中的参数太少htdocs\sprintf.php第8行 最佳答案 使用单引号代替双引号:$str='Hello:Youscored%s(%s%%).Yourscoreis%2$s%%';变量在双引号内扩展,因此$s被视为变量,而不是格式化选项。如果要使用双引号,可以转义美元符号:$str

PHP sprintf 空间填充

我的代码中有以下行以6个带前导零的字符显示我的输出。$formatted_value=sprintf("%06d",$phpPartHrsMls);我想用空格替换前导零。已尝试通过搜索此站点和其他站点找到的所有示例,但无法弄清楚。以下是我尝试过的一些:$formatted_value=sprintf("%6s",$phpPartHrsMls);$formatted_value=printf("[%6s]\n",$phpPartHrsMls);//right-justificationwithspaces 最佳答案 在浏览器中,空格总

php - 在 PHP 中使用 sprintf 时添加\n 换行符

我正在尝试将现有数据从MySQL数据库导出到我可以使用rakedb:seed运行的ruby​​命令。这是我的代码。#Generatedb:seeddataforproveedores.$proveedores=R::findAll('tbproveedores');$proveedoresE=R::exportAll($proveedores);foreach($proveedoresEas&$p){$line='BookSupplier.create(company:"%s",city:"%s",country:"%s",address:"%s",telephone:"%s",con

PHP:可以使用数组作为 sprintf 函数的参数部分吗?如果是这样 - 怎么样?

来自PHPAPI引用:stringsprintf(string$format[,mixed$args[,mixed$...]])Returnsastringproducedaccordingtotheformattingstringformat.$args可以是一个数组吗?如果可以,我该如何使用它? 最佳答案 vsprintf()是你的friend。您不能以任何有意义的方式在sprintf中使用数组,但您可以使用参数数组调用vsprintf()(替换sprintf's单独的函数参数)。