使用文件和结构来读取数据并输出

时间:2018-04-17 19:23:57

标签: c++ file struct

迈克85 83 77 91 76 CSC

Mark 80 90 95 93 48 CSC

Anderson 78 81 11 90 73布斯

Blair 92 83 30 69 87 ECE

Suzy 23 83 30 69 87 ARC

Karlos 46 76 90 54 38 MASS-COMM

所以我有这个文件,我需要阅读它的数据并通过控制台使用结构输出,我已经设法阅读迈克的名字和他的分数和教师,但那是我被卡住的地方,我怎么能继续读书?

这是我的代码

struct student {

    string name;
    int scores[5];
    string faculty;

};


void main() {

    student x;

    ifstream myfile("D:\\Test\\MIUCS.txt");

    myfile >> x.name;

    for (int j = 0; j < 5; j++) {

            myfile >> x.scores[j];
        }



    myfile >> x.faculty;


    cout << x.name << " ";

    for (int k = 0; k < 5; k++) {

        cout << x.scores[k] << " ";

    }


    cout << x.faculty << endl;


}

提示:我的教授说要使用我无法真正实现的类型学生(结构)数组,任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

  

我该如何继续阅读?

jwfuj4r dsfhy3 循环中绕过读/写代码。继续阅读和写作,直到没有东西可读。

while

您可以通过移动代码来简化循环,以便读取和写入自己的函数。

while (  myfile >> x.name )
{
   for (int j = 0; j < 5; j++)
   {
      myfile >> x.scores[j];
   }

   myfile >> x.faculty;

   // If there was any error in reading from myfile, break out of the loop.    
   if ( !myfile )
   {
      break;
   }

   cout << x.name << " ";
   for (int k = 0; k < 5; k++)
   {
      cout << x.scores[k] << " ";
   }

   cout << x.faculty << endl;
}

要使用上述内容,您需要将while ( myfile >> x ) std::cout << x << std::endl; 函数和operator>>函数重载为:

operator<<

我会留给你把它带到下一步。