如何请求输入一次初始化多个结构

时间:2015-04-02 20:20:35

标签: c++

我有一个结构:

struct Student {
    string name;
    int CWID;
    float GPA;
};

现在,我有一个由5名学生组成的阵列:

Student* s = new Student[5];

现在我想用这种形式的控制台输入初始化它们:

John    5012356   3.5
Mike    5012432   3.6
Ryan    5013521   3.3
Mary    5012784   4.0
Harry   5012695   3.1

我的琐碎逻辑是:

 for (int i = 0; i < 5; i++) {
        cout << "\n\nPlease enter Student " << (i + 1) << "'s details (Name, CWID, GPA): ";
        cin >> s[i].name >> s[i].CWID >> s[i].GPA;
 }

不是单独询问5个输入,而是如何一次性取出它们?

2 个答案:

答案 0 :(得分:1)

  

不是单独询问5个输入,而是如何一次性取出它们?

使用控制台输入输入是如此古老的学校。

  1. 将数据放入文件中。

  2. 摆脱程序中用户输入的提示。

  3. 使用该文件作为输入源。


  4.  for (int i = 0; i < 5; i++) {
        cin >> s[i].name >> s[i].CWID >> s[i].GPA;
     }
    

    用法:

     ./program < input.txt
    

答案 1 :(得分:0)

您可以删除cout并将其放在循环外。

cout << "\n\nPlease enter Students' details (Name, CWID, GPA): \n";
for (int i = 0; i < 5; i++) {
        cin >> s[i].name >> s[i].CWID >> s[i].GPA;
}

实际上并没有什么不同;这就是你看待事物的方式。不过,您可能想要使用files。如果你总是需要一组特定值,它可能会节省你一些时间。