**編集:「inStream >> next」を「inStream >> skipws >> next」に変更することで動作するようになりました。以前の関数の 1 つ (姓と名を取得するため) で、noskipws を切り替えました。どうやらそのトグルは機能間で持続しますか?
「lastname firstname 1 2 3 4 5 6 7 8 9 10」(10 個の数字はそれぞれ整数スコア)。
姓と名は問題なく読み取ることができますが、数字を読み始めると、最初の名前しか読み取れず、残りはすべて 0 に設定されます。
以下は、スコアを読み込むことになっている関数です。inStream では、姓と名が既に取り除かれています。私が使用しているテキストファイルには1行あります:
トーシス・ハレー 85 23 10 95 43 12 59 43 20 77
プログラムを実行し、student.score の値を 0 から 9 まで出力すると、最初の値は正しく '85' と表示されますが、すべてのリセットは '0' と表示されます。考え?
void GetScores (ifstream& inStream, record& student)
{
int score[10] = {-1, -1, -1, -1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1};
int next;
int counter = 0;
string test;
for (int i = 0; i < 10; i++)
{
inStream >> next;
student.score[i] = next;
}
}