0

現在、入力ファイルのデータ行を構造体の配列に割り当てようとしています。

ここに私の構造体があります:

struct student
    {
        int ID;
        int hours;
        float GPA;
    };

    student sStudents[MAX_STUDENTS]; // MAX_STUDENTS = 10

どこ:

for (int i = 0; !inputFile.eof(); i++)
{
    getline(inputFile, dataLine);
    cout << dataLine << endl; // Everything outputs perfectly, so I know dataLine is getting the correct information from getline()
            //??
}

Google を 1 時間クロールした後でも、getline() データを各構造体配列に取得する方法がわかりません。

私が試してみました、

sStudents[i] = dataLine;
sStudents[i] << dataLine;
sStudents.ID = dataLine;

ここに私のデータファイルがあります:

1234  31  2.95
9999  45  3.82
2327  60  3.60
2951  68  3.1
5555  98  3.25
1111  120 2.23
2222  29  4.0

この時点で、私は欲求不満になり、どうすればよいかわかりません。この時点で、私はそれについて完全に間違っていると確信していますが、ここからどのように続けるかはわかりません. sStudents の 10 個の要素が存在することはわかっているので、それで問題ありませんが、入力ファイルから各 .ID、.hours、.GPA に値を取得するにはどうすればよいですか? ここで getline() が間違って使用されているのではないでしょうか?

4

3 に答える 3

2

次の操作を簡単に実行できます。

int ID = 0;
int hours = 0;
float GPA = 0.0;
int i = 0;
ifstream inputFile("data.txt");
while (inputFile >> ID >> hours >> GPA)
{
   sStudents[i].ID = ID;
   sStudents[i].hours = hours;
   sStudents[i].GPA = GPA;
   i ++;
}
于 2013-04-23T00:09:34.860 に答える
0

入力ストリームからデータを取得するには、>>演算子を使用します。そう:

int i;
file >> i;

ファイルから単一の整数を抽出します。デフォルトでは、スペースで区切られています。それを使用して、さらに進むかどうかを確認します。

于 2013-04-23T00:12:45.427 に答える