2013-09-23 50 views
-3

我是C新手,我很驚訝沒有直接的功能來實現我想要的功能。fPrintf整數

我正在執行一個程序,需要將一個整數值寫入一個文件。我有幫助我寫入文件的代碼片段:

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

它拋出以下錯誤:

error: too few arguments to function ‘int printf(const char*, ...)’
printf();

現在,我試圖找到如何打印整數在C文件,但沒有發現任何straightfoward答案。所以我剩下兩個選項,要麼嘗試找到一種方法將此整數轉換爲字符串,或者讓Fprintf將整數值寫入文件。

我不確定哪一個是最佳選擇。有什麼建議麼?

+0

...傻錯字...... – phonetagger

+0

你是否認爲在編輯的代碼'fprintf中( in_file,「entry value:%d」,argc);'仍然給你錯誤信息? – jxh

+0

這就是發生了什麼。我能夠成功打印字符串.'int something = 5; \t FILE * in_file = fopen(「test.txt」,「w」); \t fprintf(in_file,「%d」,something); //全部完成! \t fclose(in_file);'這不起作用 – TeaLeave

回答

2

在這一行fprintf(in_file,"entry value: %d,argc");您應將其更改爲fprintf(in_file,"entry value: %d" , argc);

+0

其實我很抱歉。這是你已經建議的方式(in_file,「輸入值:%d」,argc)。我爲這種混亂感到很抱歉。 – TeaLeave

1

一個小錯誤,argc應該放在所有*printf方法的字符串字面之外。

fprintf(in_file,"entry value: %d",argc); 

int fprintf (FILE * stream, const char * format, ...);

... (additional arguments)

Depending on the format string, the function may expect a sequence of additional arguments, each containing a value to be used to replace a format specifier in the format string (or a pointer to a storage location, for n). There should be at least as many of these arguments as the number of values specified in the format specifiers. Additional arguments are ignored by the function.

+0

其實我很抱歉。這是你已經建議的方式(in_file,「輸入值:%d」,argc)。我爲這種混亂感到很抱歉。 – TeaLeave

1

嘗試

fprintf(in_file,"entry value: %d", argc); 
+0

其實我很抱歉。這是你已經建議的方式(in_file,「輸入值:%d」,argc)。我爲這種混亂感到很抱歉。 – TeaLeave