gpt4 book ai didi

c++ - ifstream 不读取文件中存在的 `0a` 字节

转载 作者:行者123 更新时间:2023-11-30 03:16:35 25 4
gpt4 key购买 nike

我想读取文件的前 7 个字节。这是我的文件的数据:

42 4d b6 fc 0a 00 00

我使用这段代码来做到这一点:

#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;


int main()
{
ifstream r("TestFile.abc", ios::binary);
unsigned char info[7];
for(int i = 0 ; i < 7; i++){
r >> info[i];
}

for(int i = 0 ; i < 7; i++){
std::stringstream ss;
ss << std::hex << (int) info[i]; // int decimal_value
std::string res ( ss.str() );
cout << i << setw(10) << info[i] << setw(10) << res << endl;
}



return 0;;
}

这是输出:

0         B        42
1 M 4d
2 ╢ b6
3 ⁿ fc
4 0
5 0
6 0

Process returned 0 (0x0) execution time : 0.032 s
Press any key to continue.

为什么 0a 字节被替换为 0

最佳答案

>>> 跳过空格,0a 是一个空格字符。试试这个

info[i] = r.get();

get 读取单个字节而不跳过任何内容(除了可能的行尾转换,但您已经使用 ios::binary 考虑到了这一点)

关于c++ - ifstream 不读取文件中存在的 `0a` 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56215243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com