私の同級生は既にこのトピックについて同様の質問を投稿していることを知っていますが、これはどのように動作するのでしょうか? これは、偽の学生情報が含まれるファイルのセットアップです:私は、以下の行の任意のテキストファイルの最初の行を読んでいないことができていますいくつかの理由についてテキストファイル内の値を検索する
918273645,Steve,Albright,ITCS2530,MATH210,ENG140
123456789,Kim,Murphy,ITCS2530,MATH101
213456789,Dean,Bowers,ITCS2530,ENG140
219834765,Jerry,Clark,MGMT201,MATH210
を。私は、各行の最初の9文字を読み、それをユーザーの入力と比較する方法を理解する必要があります。その後、その行の残りの部分を持ち越します。しかし、どこが間違っているのか分からない。
これは私がこれまで持っているものです。
ファイルを読み込み、あなたのメインループでvoid Login()
{
Student NewStudent;
ifstream inFile;
ifstream outFile;
string inFileName = "C:\\Users\\Prophet\\Desktop\\registration.txt";
string outFileName = "C:\\Users\\Prophet\\Desktop\\registration.txt";
openInputFile(inFile, inFileName);
while (true)
{
cout << "Please enter your student ID\n" << endl;
cin >> NewStudent.StudentID;
if (NewStudent.StudentID.length() == 9)
break;
else
cout << "That ID is invalid - IDs are 9 digits" << endl;
}
if (inFile.is_open())
{
while (!inFile.eof())
{
string line;
while (getline(inFile, line))
{
stringstream ss(line);
string StudentID, FirstName, LastName, ListOfCourses;
getline(ss, StudentID, ',');
getline(ss, FirstName, ',');
getline(ss, LastName, ',');
getline(ss, ListOfCourses, ',');
cout << "\n";
{
if (StudentID == NewStudent.StudentID)
{
cout << "Welcome to the Macomb Community College enrolment system " << FirstName << " " << LastName << endl;
inFile.close();
MainMenu();
}
if (StudentID != NewStudent.StudentID)
{
cout << "Welcome New student" << endl;
cout << "Please enter yuour first name: ";
cin >> NewStudent.FirstName;
cout << "Please enter yuour last name: ";
cin >> NewStudent.LastName;
outFile.open("C:\\Users\\Prophet\\Desktop\\registration.txt");
openOutputFile(outFile, outFileName);
MainMenu();
}
}
}
}
}
}
[MCVE]を投稿してください。 'MainMenu()'は実際にはどういう意味ですか? –
あなたのコードは1つのコース(文字列として)を読み込みますが、入力ファイルにはコースの「リスト」があります。そのファイルから読んだ次の生徒IDは、実際にはコースです。 –
MainMenu()は単なる一連のswitch文です。私が理解できないのは、コースのリストのように、最初の行のすべての情報を読むことができない理由です。そしてなぜ私は次の行を読むことができません。約1週間は試みている。 – Juan