Когда я нажимаю «2», чтобы прочитать файл, данные в файле не могут быть прочитаны, хотя мой синтаксис верен. Почему моя программа не может читать данные? В чем разница между файлом последовательного и произвольного доступа и почему предпочтительным является файл с произвольным доступом?Почему моя программа не считывает данные из файла
void EnterRecord();
void ShowRecord();
using namespace std;
class student
{
int rollno;
string name;
int marks;
public:
void SetData();
void DisplayData();
void MainMenu();
};
void student:: MainMenu()
{
cout<<" "<<endl;
cout<<"press 1 to enter record"<<endl;
cout<<"press 2 to show record"<<endl;
}
void student::SetData()
{
cout<<"enter roll no of student"<<endl;
cin>>rollno;
cout<<"enter name of student"<<endl;
cin>>name;
cout<<"enter marks of student"<<endl;
cin>>marks;
}
void student::DisplayData()
{
cout<<rollno<<setw(10)<<setw(10)<<marks<<endl;
}
int main()
{
student s1;
int choice;
repeat:
s1.MainMenu();
cout<<"enter ur choice ::"<<endl;
cin>>choice;
switch(choice)
{
case 1:
EnterRecord();
break;
case 2:
ShowRecord();
break;
}
return 0;
}
void EnterRecord()
{
ofstream myfile;
myfile.open("student3.txt",ios::app);
int choice=1;
while(choice==1)
{
student s1;
s1.SetData();
myfile.write((char*)&s1,sizeof(student));
cout<<"press 1 to enter record again"<<endl;
cin>>choice;
if(choice!=1)
{
system("cls");
s1.MainMenu();
}
}
myfile.close();
}
void ShowRecord()
{
student s2;
ifstream myfile;
myfile.open("student3.txt");
myfile.seekg(0);
while(myfile.eof())
{
myfile.read((char*)&s2,sizeof(student));
}
s2.DisplayData();
}
Неверные выражения 'case'. Они должны быть «1» и «2» вместо «1» и «2». Вы также должны начать проверку ошибок, возвращаемых функциями, которые вы вызываете. Также см. [Почему iostream :: eof внутри условия цикла считается неправильным?] (Http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –
Пожалуйста не случайно добавляйте совершенно разные вопросы к концу вашего предложения ... –
Вопросы поиска справки по отладке (** «почему этот код не работает?» **) должен включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе.Вопросы без ** понятного заявления о проблеме не полезны другим читателям. –