【发布时间】:2016-06-30 12:41:56
【问题描述】:
我在从命令行指定的 .log 文件中读取十六进制数据时遇到问题。 它只打印大约 30 行,然后退出。 谁能帮我理解为什么会这样?我需要它来打印输入文件中的所有十六进制数据。
int byte;
FILE *Inputfile = stdin;
char *filename = argv[1];
Inputfile = fopen(filename, "r");
while(( byte = fgetc(Inputfile)) != EOF)
{
printf(" %02x",byte);
}
fclose(Inputfile);
非常感谢,
编辑:输入文件是一个 .log 文件,在十六进制编辑器中如下所示: Input data
【问题讨论】:
-
你能发布你输入的数据吗?你应该检查
fopenreturn。 -
请在访问
argv[1]之前测试argc的值,在调用fgetc之前测试Inputfile的值。 -
链接文件是你打开的真实文件吗?
-
这不是“十六进制数据”,它看起来像一个二进制文件。你应该用
"rb"打开它。 -
@Marcus 您的示例输入数据不是文本。