Эта программа работает, но печатает значения мусора в начале (ch = 2) и печатает тот же результат дважды. Я использую это для своего проекта. Он содержит больше данных, и там я использовал один объект вместо массива объектов. Он не работал. Каждый объект массива хранит набор данных.Ошибка при чтении и записи в файлах
#include<iostream>
#include<fstream>
using namespace std;
class rw //a class containing some data
{
public:
int n;
char a;
};
int main()
{
int i;
rw r[2]; //an array of objects
int ch;
fstream f1;
f1.open("file1.txt",ios::in|ios::out|ios::ate);
cout<<"1-read,2-write";
cin>>ch;
f1.seekp(0,ios::beg);
if(ch==1)//for saving
{
r[0].n=1;
r[0].a='a';
f1.write((char*) &r[0],sizeof(r[0]));
r[1].n=2;
r[1].a='b';
f1.write((char*)&r[1],sizeof(r[1]));
}
if(ch==2)//for reading
{
f1.seekg(0,ios::beg);
while(!f1.eof())
{
i=0;
cout<<r[i].n<<r[i].a;
cout<<"\n";
f1.read((char*)&r[i],sizeof(r[i]));
i++;
}
}
system("pause");
return 0;
}
Что значит «не работает», пожалуйста, можете ли вы подробно остановиться на этом? Сбой программы? Он просто не выписывает файл? – cybermonkey