私は学校プロジェクト用の学生データベースシステムを作成しようとしています。学生IDの.txtファイルを検索し、文字列の他のすべての変数を返す関数を作成しようとしています。これはtxtファイルの最初の行にある学生のIDを検索しても別の行の学生を検索すると何もキャプチャしていない場合にはうまくいきます。私は明白な何かを欠いていますかC++の.txtファイルから複数の行を読み込む問題
生徒データは、各行にコンマで区切られた16文字列です。生徒IDが最初の文字列です。
ありがとうございました!
StudentType findStudent(int studentToFind)
{
ifstream inFile;
inFile.open("students.txt");
string currentLine;
string dataRead[16];
istringstream is;
int currentStudent;
if (inFile)
{
while (getline(inFile, currentLine))
{
is.str(currentLine);
for (int i = 0; i < 16; i++)
{
getline(is, dataRead[i], ',');
}
currentStudent = stoi(dataRead[0]);
if (currentStudent == studentToFind)
{
/*
Do stuff here
*/
inFile.close();
return foundStudent;
}
cin.ignore(); // Not sure if this is needed but I was trying to
// clear the \n char if that was causing the issue
}
}
}
あなたの問題全体を投稿してください。あなたが持っている問題/質問に直接関係のないアイテムは削除してください。 このコードのちょうどNONEは重要です.... – UpAndAdam
デバッガ(またはprintステートメント)を使用して、各ループ反復のcurrentStudentとstudentToFindの値を確認して、期待どおりのものであることを確認しましたか? – Tuffwer
私はすべての値を割り当てた部分を削除しました。申し訳ありませんが、関数全体が役立つと思っていました。ブレークポイントを入れて、currentStudentの値が新しい行の値に決して割り当てられないように見えるので、次の行にまったく到達しないと仮定しています。 –