我有一个带有一些示例文本的文本文件“hello.txt”。当我在十六进制编辑器中打开文件时,我可以看到换行符的 \r\n 字符。但是当我用 getc() 在 C 程序中读取文件时, \r 不知何故消失了,我只看到 \n 字符。
我试图在网上和 stackoverflow 上搜索,但没有运气。
你好.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 的转换?