比方說,我有一個int largeInt = 9999999
和char buffer[100]
,我怎麼能轉換largeInt
成字符串(我試過buffer = largeInt
,不工作),然後fwrite()
到一個文件流myFile
?如何寫一個使用INT的fwrite()
現在如果我想寫「大數是(的值爲largeInt
)」。到myFile
?
比方說,我有一個int largeInt = 9999999
和char buffer[100]
,我怎麼能轉換largeInt
成字符串(我試過buffer = largeInt
,不工作),然後fwrite()
到一個文件流myFile
?如何寫一個使用INT的fwrite()
現在如果我想寫「大數是(的值爲largeInt
)」。到myFile
?
您可以使用如here所述的非標準itoa()
函數,並將該數字轉換爲字符串,然後使用sscanf
格式化您的句子進行格式化。
itoa()
:使用指定的基本整數值到一個空終止字符串轉換,並將結果存儲由STR參數給出在數組中。
然後使用fwrite
將句子寫入您的文件。
非常感謝。從文檔中我注意到'itoa()'有一個返回值,它是一個指向結果的以null結尾的字符串的指針,與參數string相同......我想知道它爲什麼這樣設計。我認爲字符串是C中的數組,並且不需要返回數組。 –
'itoa()'絕對是非標準的。請參閱http://stackoverflow.com/questions/190229/where-is-the-itoa-function-in-linux –
一個例子:
int largeInt = 9999999;
FILE* f = fopen("wy.txt", "w");
fprintf(f, "%d", largeInt);
請參考以下鏈接:如果你想使用fwrite
http://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);
你想'largeInt'被寫入到文件中的二進制或作爲文字? – fuz
你*知道['fprintf'](http://en.cppreference.com/w/c/io/fprintf)? –
你爲什麼要使用'fwrite'?或者使用的函數不重要,你只需要它作爲文件中的字符串? (如果你想將文本寫入文件,'fwrite'通常是錯誤的選擇。) –