来自fgets的意外标题信息

时间:2016-10-22 21:08:02

标签: c header line fgets

这是一个非常简单的问题所以我知道我错过了一些明显的东西,但我似乎无法弄明白。我只是尝试使用fgets逐行读取文本,但是我得到的其他信息我假设与文件头相关联。

长话短说,我使用nano创建了一个新的文本文件,每行只有一个十进制数字,即:

2
8
3
4
...

我读取文件的代码是:

char line[20];
FILE * fp;
fp = fopen(infile, "r");
if (fp == NULL)
    exit(EXIT_FAILURE);
while(fgets(line, sizeof(line), fp)) {
    ... do some stuff ...
}
fclose(fp);

但是,它返回的第一行是"\177ELF\002\001\001",直到它终止的所有后续行都是空的""

有关为什么我没有阅读我的期望的任何建议?用nano创建文件是否引入了我不想要的额外标题垃圾?如果是这样,我怎么能避免这个?

2 个答案:

答案 0 :(得分:0)

哇我是个笨蛋...我想知道一个ELF标签在txt文件上做了什么,但是我太粗心了,无法检查用文件名实现该功能本身的脚本。切换命名约定并忘记更新该文件。

答案 1 :(得分:-1)

你在这里读错了文件。可执行文件,在许多系统上也称为ELF文件,以“\ 177ELF \ 002 \ 001 \ 001”开头。因此可以说infile的值不正确。