-2

**編集:「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;
    }

}
4

1 に答える 1