2015-11-06 75 views
2

比方說,我有一個int largeInt = 9999999char buffer[100],我怎麼能轉換largeInt成字符串(我試過buffer = largeInt,不工作),然後fwrite()到一個文件流myFile如何寫一個使用INT的fwrite()

現在如果我想寫「大數是(的值爲largeInt)」。到myFile

+3

你想'largeInt'被寫入到文件中的二進制或作爲文字? – fuz

+3

你*知道['fprintf'](http://en.cppreference.com/w/c/io/fprintf)? –

+0

你爲什麼要使用'fwrite'?或者使用的函數不重要,你只需要它作爲文件中的字符串? (如果你想將文本寫入文件,'fwrite'通常是錯誤的選擇。) –

回答

2

您可以使用如here所述的非標準itoa()函數,並將該數字轉換爲字符串,然後使用sscanf格式化您的句子進行格式化。

itoa():使用指定的基本整數值到一個空終止字符串轉換,並將結果存儲由STR參數給出在數組中。

然後使用fwrite將句子寫入您的文件。

+0

非常感謝。從文檔中我注意到'itoa()'有一個返回值,它是一個指向結果的以null結尾的字符串的指針,與參數string相同......我想知道它爲什麼這樣設計。我認爲字符串是C中的數組,並且不需要返回數組。 –

+0

'itoa()'絕對是非標準的。請參閱http://stackoverflow.com/questions/190229/where-is-the-itoa-function-in-linux –

1

一個例子:

int largeInt = 9999999; 
FILE* f = fopen("wy.txt", "w"); 
fprintf(f, "%d", largeInt); 

請參考以下鏈接:如果你想使用fwritehttp://www.cplusplus.com/reference/cstdio/fprintf/

char str[100]; 
memset(str, '\0', 100); 
int largeInt = 9999999; 
sprintf(str,"%d",largeInt); 

FILE* f = fopen("wy.txt", "wb"); 
fwrite(str, sizeof(char), strlen(str), f); 
相關問題