【发布时间】:2016-07-01 21:06:47
【问题描述】:
我的问题:
我对编程和尝试用 C++ 编写程序非常陌生,我有一个文本文件。 *在文本文件中存储学生姓名、年级和年级字母。我希望它们在数组中存储为不同类型 *
我想将它们单独存储在一个数组中...... 即文本文件看起来像这样:
Jill Hamming A 96
Steven Jenning A 94
Tim Sutton B 89
Dillon Crass C 76
Sammy Salsa D 54
Karen Poulk D 49
我想将所有名字存储在一个数组中,将姓氏存储在另一个数组中等等。等等。 这些数组稍后将被分配给学生的对象。可能有多达500名学生。
那么问题来了:
如何将文本文档中的输入存储到数组中,而不是使用 500 个变量。
即。这是我的尝试。
int main()
{
/// the input is all different types, strings, ints and chars
string my_First_Name[500], my_Last_Name[500];
int my_grade[500];
char my_letter[500];
ifstream myfile("input.txt");
if (myfile.is_open()){
for (int i = 0; i < 500; i++) {
myfile >> my_First_Name[i] >> my_Last_Name[i] >> my_grade[i] >> my_letter[i];
}
// much later and irrelevent part but just showing because this is what I want to do. where Student Class exsists somewhere else. yet to be programmed.
Student myStudent [500];
myStudent[i].Grades = my_grade[i];
myStudent[i].LetterGrade = my_letter[i];
}
myfile.close();
//Exit
system("pause");
return 0;
}
当我去打印我拥有的东西时。我有所有负数和奇怪的数字,这意味着它没有被初始化。我哪里做错了?
【问题讨论】:
-
使用
struct并将其存储在std::vector中。 -
你说先评分然后评分字母,但你显示的文件内容却反过来。
-
所有这些都是无关紧要的,我想知道为什么你不能像我一样将它存储在数组中。我从未使用过 std::vector。存储在向量与数组中有何帮助?
-
数组在传递给函数时很痛苦。当你传递一个数组时,元素的容量和数量都会丢失。此外,数组是固定大小的,而
std::vector可以动态增长。 -
文件中真的有500条记录吗?如果少于 500 会发生什么?超过 500 个时会发生什么?