我需要创建一个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;
}
答案 0 :(得分:2)
访问阵列时,您忘记从数组中索引元素。变化:
students->testScore
要:
students[i].testScore
在两个循环中。第一个版本只对第一个元素进行更改(因为它可以使用*students
访问),而第二个版本将索引添加到指针。
这只是使用std::vector
或std::array
的另一个好理由,因为如果您尝试取消引用它们,就像在此处使用数组一样,您会收到明显的错误。
另外,在C ++中,您应该在循环中声明循环变量 。在C99之前将它们声明为外部是必要的,但不是C ++。