fPrintf一个整数

时间:2013-09-23 21:13:45

标签: c printf

我是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将整数值写入文件。

我不确定哪一个是最佳选择。有什么建议吗?

3 个答案:

答案 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);