-5
ここでは多くのことを間違っています。 Plzヘルプ。whileループ(C++プログラム)のクロス初期化エラー
変数st
が初期化が、使用されていません
st->readdata();
:
#include <iostream>
#include <fstream>
using namespace std;
class student {
int rno;
char name[15];
float marks;
public:
void getdata()
{
cout << "\nEnter Roll No. : ";
cin >> rno;
cout << "\nEnter Name : ";
cin >> name;
cout << "\nEnter Marks : ";
cin >> marks;
};
void writedata()
{
fstream input;
input.open("stu.dat", ios::out | ios::app);
input.write((char*)this, sizeof(student));
input.close();
};
void readdata()
{
int temp;
cout << "\nEnter roll no: ";
cin >> temp;
fstream output;
output.open("stu.dat", ios::in);
output.seekg(0, ios::beg);
while (output.read((char*)this, sizeof(student))) {
if (rno == temp) {
cout << "\nRoll no. : " << rno
<< "\nName : " << name
<< "\nMarks : " << marks;
}
else {
cout << "\nWrong Roll no entered";
};
};
};
};
int main()
{
student s[25];
student* st;
char ans = 'y', ans2 = 'y', ans3 = 'y';
int o, i = 0, j = 0;
do {
cout << "\nEnter your choice\n1.Write\n2.Read";
cin >> o;
switch (o) {
case 1:
while (ans2 == 'y' || ans2 == 'Y') {
s[i].getdata();
s[i].writedata();
cout << "\nDo you want to continue?";
cin >> ans2;
i++;
};
break;
case 2:
while (ans3 == 'y' || ans3 == 'Y') {
st->readdata();
cout << "\nDo you want to continue?";
cin >> ans3;
j++;
};
break;
};
} while (ans == 'y' || ans == 'Y');
return 0;
}
あなたのコードをうまくフォーマットします。問題をはっきりと追加してください。 –
編集していただきありがとうございます、私は以前の問題を把握しましたが、今はファイルに入力されたデータを読み取ることができませんでした。もし誰かが私を助けてくれれば偉大になるでしょう。 (ps、私はプログラミングとスタックのオーバーフローに新しいです) –
あなたは、プログラムが何をすべきかを説明することから始めることができます。次に、コードのどの部分がどのように失敗するかを正確に教えていただければ幸いです。 – Schore