【发布时间】:2015-07-19 20:11:30
【问题描述】:
我正在尝试打开一个二进制文件并读取课程作业的内容。即使在进行研究之后,我在尝试打开和打印二进制文件的内容时也无法显示任何内容。我什至不确定我应该得到什么,如何检查它是否正确,但我知道没有什么(这是我目前得到的)是坏的。这是我在这个网站上搜索得到的代码
#include<stdio.h>
int main()
{
FILE *ptr_myfile;
char buf[8];
ptr_myfile = fopen("packets.1","rb");
if (!ptr_myfile)
{
printf("Unable to open file!");
return 1;
}
fread(buf, 1, 8, ptr_myfile);
printf("First Character: %c", buf[0]);
fclose(ptr_myfile);
return 0;
}
打印时,我得到“第一个字符:”,没有打印任何其他内容。也许它不能在终端中正常打印?我不确定,任何帮助将不胜感激,谢谢
【问题讨论】:
-
看来你的调用是正确的。用文本文件试试。
-
如果您使用十六进制编辑器查看您尝试阅读的文件,它将显示第一个字符。或者您可以打印字符的值而不是尝试将其转换为字符,只是为了检查它——它可能是一个空白字符。请注意,如果您使用使用 Unicode 编码的文本文件,文件开头可能会有一个字节顺序标记。