Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 文件读取问题_C++_File - Fatal编程技术网

C++ 文件读取问题

C++ 文件读取问题,c++,file,C++,File,当我使用HexView打开文件时,这个二进制文件显示了正确的值 4c 60 02 aa b4 c2 d1 e3 1a 01 00 8c 01 00 f5 01 00 00 52 02 00 00 bd 02 00 00 20 03 00 00 32 03 00 59 03 00 00 当我使用fread将40字节的数据读入char缓冲区时,它失败了。从第9字节数据开始,所有回读数据均为0x00 int main() { FILE *stream; char flag[40]={0

当我使用HexView打开文件时,这个二进制文件显示了正确的值

4c 60 02 aa b4 c2 d1 e3 1a 01 00 8c 01 00 f5 01 00 00 52 02 00 00 bd 02 00 00 20 03 00 00 32 03 00 59 03 00 00

当我使用fread将40字节的数据读入char缓冲区时,它失败了。从第9字节数据开始,所有回读数据均为0x00

int main()
{
    FILE *stream;
    char flag[40]={0};
    size_t numread = 0;
    UINT theme = 0;

    if ((stream = fopen("alignment.bin", "r")) != NULL)
    {
        numread = fread(&flag, 1, 40, stream);

        fclose(stream);
    }
    else
    {
        cout << "File open failed" << endl;
    }
    system ("pause");
    return 0;
}
intmain()
{
文件*流;
字符标志[40]={0};
大小\u t numread=0;
UINT主题=0;
if((stream=fopen(“alignment.bin”,“r”))!=NULL)
{
numread=fread(&flag,1,40,stream);
fclose(流);
}
其他的
{
请尝试使用
“rb”
而不是
“r”
。可能存在一些奇怪的文本格式问题

指定
b
将使其以纯二进制格式读取,而不带任何格式。

尝试使用
“rb”
而不是
“r”
。可能存在一些奇怪的文本格式问题

指定
b
将使其以纯二进制形式读取,无格式设置。

0x1A==26==ctrl-Z==EOF

如果你在文本模式下读取,该流考虑在该点之后完成的流(接下来是“其他传输的垃圾”)。

< P> 0x1A==26=cTrl z==EOF。

如果你在文本模式下读取,流会考虑在那个点之后完成流(接下来是“其他传输的垃圾”)。< /P>你是否使用Windows?第九字节是“代码> 1A < /代码>(A.K.Ctrl +Z)这在Windows中可能被视为文件结束。是的,在Windows环境中。知道Ascii 0x1a的含义吗?它意味着Windows文本文件的文件结束。我在回答中有这一点,但在意识到Mystic是第一个使用“rb”的文件后,我删除了再过几分钟!看到你在使用Windows了吗?第9个字节是

1a
(又称Ctrl+Z)在Windows中,这可能被视为文件结束。是的,在Windows环境中。知道Ascii 0x1a的含义吗?它意味着Windows文本文件的文件结束。我在回答中有这一点,但我在几分钟后意识到Mystic是第一个使用“rb”的!请看,使用“rb”,它将使读取完全以二进制形式进行,忽略Ascii映射中的特殊字符?特殊字节不会被“忽略”,但不会对其采取任何措施。因此,使用“rb”,它将使读取完全以二进制形式进行,忽略Ascii映射中的特殊字符?特殊字节不会被“忽略”,但不会对其采取任何措施。