-6ren">
gpt4 book ai didi

C++从文件中读取不正确

转载 作者:行者123 更新时间:2023-12-01 14:35:10 25 4
gpt4 key购买 nike

所以,我运行了这个程序,我预期的答案是 26,但得到的却是 -52。请解释为什么代码读取字符不正确。

char x = 26;
ofstream ofile("file.txt");
ofile << x;
ifstream ifile("file.txt");
char y;
ifile >> y;
cout << (int)y;

最佳答案

如果要写入非文本数据,应该以二进制方式打开文件:

ofstream ofile("file.txt", ios_base::binary);

一个好的做法是检查文件是否真的被成功打开:

ofstream ofile("file.txt", ios_base::binary);
if (!ofile) return -1;

在您关闭文件之前,缓冲区很可能不会被刷新,因此在您关闭之前读取另一个流中的文件是没有意义的:

ofile << x;
ofile.close();

一个好主意是用endl完成输出到cout:

cout << (int) y << endl;

所以你需要这样的东西:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
char x = 26;

ofstream ofile("file.txt", ios_base::binary);
if (!ofile) return -1;
ofile << x;
ofile.close();

ifstream ifile("file.txt", ios_base::binary);
if (!ifile) return -1;
char y;
ifile >> y;
cout << (int) y << endl;
ifile.close();

return 0;
}

关于C++从文件中读取不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63085016/

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