我的代码是void list() { ifstream list1("list/1.txt"); ifstream list2("list/2.txt"); ifstream list3("list/3.txt"); char bufline[3][0xFF]; list1.getline(bufline[0],0xFF); //读取一行 list2.getline(bufline[1],0xFF); list3.getline(bufline[2],0xFF); ofstream _list1("list/1.txt"); ofstream _list2("list/2.txt"); ofstream _list3("list/3.txt"); cout<<bufline[0]<<endl; },但是我的文件中有汉字,我该如何修改以达到读取汉字并成功输出的目的?
时间: 2024-02-24 12:55:04 浏览: 59
Doubly_linked_list
您需要将文件流对象设置为二进制模式,这样读取时就可以正确地读取汉字。您需要将代码中的ifstream和ofstream改为以下形式:
```c++
ifstream list1("list/1.txt", ios::in | ios::binary);
ifstream list2("list/2.txt", ios::in | ios::binary);
ifstream list3("list/3.txt", ios::in | ios::binary);
ofstream _list1("list/1.txt", ios::out | ios::binary);
ofstream _list2("list/2.txt", ios::out | ios::binary);
ofstream _list3("list/3.txt", ios::out | ios::binary);
```
另外,您可能需要将bufline数组的大小改为足够存放汉字的大小,例如:
```c++
char bufline[3][0xFFFF]; // 65535 bytes
```
这样就可以读取汉字并成功输出了。
阅读全文