我是C的新手,我很惊讶没有直接的功能来实现我的目标。
我正在执行一个程序,需要将一个整数值写入文件。我有代码片段,可以帮助我写入文件:
FILE *in_file = fopen("test.txt", "w");
fprintf(in_file,"Test");
// all done!
fclose(in_file);
此代码能够成功将字符串写入文件。现在,当我尝试将一个整数值写入该文件时,它不喜欢它,因为我猜Fprintf喜欢只将字符串写入文件中:
所以以下代码不起作用:
int argc = 10;
FILE *in_file = fopen("test.txt", "w");
fprintf(in_file,"entry value: %d",argc);
// all done!
fclose(in_file);
它会抛出以下错误:
错误:函数'int printf(const char *,...)'的参数太少了 printf();
现在,我试图找到如何在C中打印整数到文件,但没有找到任何直接的答案。所以我有两个选项,要么我试图找到一种方法将这个整数转换为字符串,要么让Fprintf将整数值写入文件。
我不确定哪一个是最佳选择。有什么建议吗?
答案 0 :(得分:2)
在此行fprintf(in_file,"entry value: %d,argc");
中,您应将其更改为fprintf(in_file,"entry value: %d" , argc);
答案 1 :(得分:1)
轻微错误,argc
应放在所有*printf方法的字符串文字之外。
fprintf(in_file,"entry value: %d",argc);
int fprintf(FILE * stream,const char * format,...);
...(其他参数)
根据格式字符串,函数可能需要一系列附加参数,每个参数都包含一个值,用于替换格式字符串中的格式说明符(或指向存储位置的指针,用于n)。 这些参数中应至少有与格式说明符中指定的值的数量相同。函数忽略了其他参数。
答案 2 :(得分:1)
尝试
fprintf(in_file,"entry value: %d", argc);