簡體   English   中英

文件讀取問題

[英]File reading problem

當我使用HexView打開文件時,我具有顯示正確值的二進制文件。

4c 60 02 aa b4 c2 d1 e3 1a 01 00 00 8c 01 00 00 f5 01 00 00 52 02 00 00 bd 02 00 00 20 03 00 00 32 03 00 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;
}

嘗試使用"rb"代替"r" 可能存在一些奇怪的文本格式問題。

指定b使它以純二進制格式讀取,不帶格式。

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

如果您以文本模式閱讀,則流將認為該點之后已完成流(接下來的內容是“其他傳輸的垃圾”)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM