當我通過fputc
寫入一個大於255的值到文件中時會發生什麼?fputc和fgetc(C)的值大於255?
這裏是我的代碼:
inputFile = fopen("arx.txt", "wr");
int a = 253;
for (int i = 0; i < 5; i++) {
printf("writing %d\n", a);
fputc(a++, inputFile);
}
int b = 2 * 253;
for (int i = 0; i < 5; i++) {
printf("writing %d\n", b);
fputc(b++, inputFile);
}
,這就是我在文件中看到
ύώϊϋόύώ
我需要寫這些值來代替陣列的文件,我必須知道在fputc
和fgetc
內發生了什麼。
任何幫助?
閱讀文檔有幫助。來自['man fputc'](https://linux.die.net/man/3/fputc):* fputc()將字符c,**轉換爲無符號字符**,以進行流式處理。* –
' 「wr」不是'fopen()'的標準模式字符串。 – chqrlie
也許這可能對您有用:http://www.cprogramming.com/tutorial/unicode.html使用大於255的值時,您處於無符號字符範圍之外。因此,您將需要使用不是字符的值,而是使用一些較大的數據類型,例如短褲或整數。當然,要做到這一點,你將不得不避免正常的字符處理功能,因爲它們中的許多將與這些較大的值不兼容。 – SpencerD