我有一個帶有一些示例文本的文本文件「hello.txt」。當我在十六進制編輯器中打開文件時,可以看到換行符的\ r \ n字符。但是當我用getc()在C程序中讀取文件時,\ r某種程度上消失了,我只能看到\ n字符。getc()不返回carrige返回' r'字符
我試圖在網上搜索和在stackoverflow但沒有運氣。
hello.txt的
Sample
File
代碼:
#include <stdio.h>
int main()
{
FILE *fp;
fp = fopen("hello.txt", "r");
int character = 0;
while((character = getc(fp)) != EOF)
{
printf("%.2X ", character);
}
return 0;
}
輸出:從十六進制編輯器看到
53 61 6D 70 6C 65 0A 46 69 6C 65
文件:
53 61 6D 70 6C 65 0D 0A 46 69 6C 65
可以看出,使用getc()函數時,0D0A僅輸出爲0A。
爲什麼getc()避免'\ r'字符?我怎樣才能得到它返回給定文件中的EXACT數據,即\ r \ n沒有任何轉換爲\ n?
嘗試在二進制模式下打開它,使用''rb「'來獲得''\ r''s。 – 2013-03-20 15:46:56
謝謝。有效 ! :) – 2013-03-20 15:52:50