我有一个带有一些示例文本的文本文件“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