将值读入数组的结构

时间:2018-02-09 21:42:49

标签: c++ arrays file struct io

我需要创建一个struct数组,其中struct是学生(数据类型为string FirstName,string LastName,int testScore,和char等级)。我已经找到了函数原型的逻辑,我学到了一些基本的文件i / o。我希望结构数组中有20个学生,并且要从.txt文件中读取信息。这是我遇到麻烦的地方。这是我的基本代码。

#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std; 

struct studentType {
   string firstName;
   string lastName; 
   int testScore; 
   char Grade; 
};

int main()
{
   studentType students[20];

   int i;

   ifstream inputFile; 
   inputFile.open("testScores.txt"); 

   for (i = 0; i < 20; i++)
      inputFile >> students->testScore; 

   cout << "The test scores entered are: "; 

   for (i = 0; i < 20; i++)
      cout << " " << students->testScore; 

   return 0;
}

1 个答案:

答案 0 :(得分:2)

访问阵列时,您忘记从数组中索引元素。变化:

students->testScore

要:

students[i].testScore

在两个循环中。第一个版本只对第一个元素进行更改(因为它可以使用*students访问),而第二个版本将索引添加到指针。

这只是使用std::vectorstd::array的另一个好理由,因为如果您尝试取消引用它们,就像在此处使用数组一样,您会收到明显的错误。

另外,在C ++中,您应该在循环中声明循环变量 。在C99之前将它们声明为外部是必要的,但不是C ++。