2013-08-16 138 views
0

我在我的项目(C语言)有这样的命令:的printf(%S)打印0

int addFinalDataStr(char* value) 
{ 
    fprintf(objFile,"%-7.7s\n",value); 
    fflush(objFile); 
} 

当我把这种方法用类似的值:"60100",它打印"60100"没有问题, 但当我用像"37777777773"这样的字符串调用它时,它只打印出"0"

+0

您是否检查过返回值?它不应该是负面的。 – user35443

+1

你使用什么编译器?只是在代码簿上尝试过它,它为我工作...(http://codepad.org/1hzQE2EC) – Jimbo

+0

向我们展示一个完整的自包含程序,展示问题。 http://sscce.org/。如果使用'printf'而不是'fprintf(objFile,...)',问题是否会显示?你有没有尝试过调整格式字符串? –

回答

0

我想你的错误是由编译器检查与另一个编译器(我建议你的GCC编译器),看看它是否工作。

+0

我不认为有足够的信息来指责编译器(或运行时库,就此而言)。我们需要一个完整的独立程序。 –

0

有问题

printf("%-7.7s\n", "60100"); 
// should print "60100 ", not "60100" as OP states 

printf("%-7.7s\n", "37777777773"); 
// should print "3777777", not "0". 

它出现的编译器不兼容或东西的关键是从后失踪。

相关问题