gpt4 book ai didi

c++ - 使用 ifstream 读取字节

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:42 24 4
gpt4 key购买 nike

我对 C++ 比较陌生,对 ifstream 有一些疑问。我想做的就是逐字节读取文件,然而,读取总是在文件中间失败。我的代码:

void read(ifstream&f)
{
unsigned char b;
for (int i=0;;++i)
{
if(!f.good())
{
cout<<endl<<"error at: "<<i;
return;
}
f>>b; // b=f.get(); and f.read(&b, 1); doesnt work either
cout<<b;
/* ... */
}
}

它正确读取前几百个字节,然后跳过文件的其余部分。缓冲有问题吗?我做错了什么?

编辑:

我刚刚发现了一些可能的原因:在文件中我使用了 CRLF 行结尾(2 个字节),但是上述所有方法只返回 LF,所以在每一行的末尾我只增加一个,但是文件中有 2 个字节。所以我的问题是:如何分别获得 CR 和 LF?

最佳答案

尝试

f.read(&b, 1);

两者都是 <<get()用于文本,而不是二进制数据。

关于c++ - 使用 ifstream 读取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162608/

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