gpt4 book ai didi

C++ 使用缓冲区写入文本会在文件末尾返回非 ascii 字符。

转载 作者:行者123 更新时间:2023-11-28 03:08:39 25 4
gpt4 key购买 nike

我是 C++ 的新手,正在尝试读写二进制文件。我已经使用读写函数从一个文件中读取文本并将其输出到一个新文件中。但是,以下字符始终出现在创建的文本文件“ÌÌ”的末尾。指示文件结尾的特定字符是否保存在字符缓冲区中?

int main(){
ifstream myfile("example.txt", ios::ate);
ofstream outfile("new.txt");
ifstream::pos_type size;
char buf [1024];

if(myfile.is_open()){
size=myfile.tellg();
cout<<"The file's size is "<<(int) size<<endl;
myfile.seekg(0,ios::beg);
while(!myfile.eof()){
myfile.read(buf, sizeof(buf));
}
outfile.write(buf,size);
}
else
cout<<"Error"<<endl;

myfile.close();
outfile.close();
cin.get();
return 0;

}

最佳答案

这不是您的代码的唯一问题(在大于 1024 字节的文件上尝试)但是因为您正在执行二进制 I/O,所以您需要

ifstream myfile("example.txt", ios::ate|ios::binary);
ofstream outfile("new.txt", ios::binary);

关于C++ 使用缓冲区写入文本会在文件末尾返回非 ascii 字符。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060928/

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