我在我的项目(C语言)有这样的命令:的printf(%S)打印0
int addFinalDataStr(char* value)
{
fprintf(objFile,"%-7.7s\n",value);
fflush(objFile);
}
当我把这种方法用类似的值:"60100"
,它打印"60100"
没有问题, 但当我用像"37777777773"
这样的字符串调用它时,它只打印出"0"
。
我在我的项目(C语言)有这样的命令:的printf(%S)打印0
int addFinalDataStr(char* value)
{
fprintf(objFile,"%-7.7s\n",value);
fflush(objFile);
}
当我把这种方法用类似的值:"60100"
,它打印"60100"
没有问题, 但当我用像"37777777773"
这样的字符串调用它时,它只打印出"0"
。
我想你的错误是由编译器检查与另一个编译器(我建议你的GCC编译器),看看它是否工作。
我不认为有足够的信息来指责编译器(或运行时库,就此而言)。我们需要一个完整的独立程序。 –
有问题
printf("%-7.7s\n", "60100");
// should print "60100 ", not "60100" as OP states
printf("%-7.7s\n", "37777777773");
// should print "3777777", not "0".
它出现的编译器不兼容或东西的关键是从后失踪。
您是否检查过返回值?它不应该是负面的。 – user35443
你使用什么编译器?只是在代码簿上尝试过它,它为我工作...(http://codepad.org/1hzQE2EC) – Jimbo
向我们展示一个完整的自包含程序,展示问题。 http://sscce.org/。如果使用'printf'而不是'fprintf(objFile,...)',问题是否会显示?你有没有尝试过调整格式字符串? –