2016-10-22 21 views
0

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

长话短说,我做了使用纳米一个新的文本文件,每行只是一个小数位,即:

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

什么是'infile'?看起来'infile'包含一些ELF文件的路径。 – Downvoter

+1

我没有看到任何输出功能。 [mcve]在哪里? – Olaf

+0

你应该刚刚删除这个问题。这不太可能帮助其他人。 –

回答

-1

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

0

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