我是 C++ 的初学者,现在我需要处理来自输入文件的数据,该文件有很多行,如下所示:
2012019109 Proadan Legeaf Coaa 女 65
这些是学号、姓名(2 或 3 个字)、性别和考试成绩。
我必须为这些属性中的每一个创建一个数组。此外,我不知道输入文件可能包含多少行(最多 100,000 行),但输入文件中的第一个数字将是该文件中的行数。
一旦我设置了一个数组,我需要实现一个函数来按 Name 的字母字符串顺序(升序)对记录进行排序,然后将它们放入输出文件中。
我尝试按以下方式对第一部分(设置数组)进行操作,但这似乎是错误的:
ifstream fin;
ofstream fout;
fin.open("input.txt");
fout.open("output.txt");
if (fin.fail()) {
cout << "Fail to open inout.txt" << endl;
exit(1);
}
int x;
fin >> x; //this is the first number within the input text file, indicating the number of lines in the file. I would use this to determine the size of the arrays:
int UID [x];
string name [x];
string gender [x];
int score [x];
int y = 0;
// In the following part, I am trying to extract the information into the different arrays, one by one, increasing the number of the element from 0 up till x. Complier error says no matching function for call for the UID and score lines.
while (y!=x, y++) {
getline(fin, UID [y], '\t');
getline(fin, name [y], '\t');
getline(fin, gender [y], '\t');
getline(fin, score [y], '\t');
break;
}`
一旦我有了这些数组,我只需要找到一种按字母顺序排序的方法,但即使有了这些第一步,我也被卡住了。正如您可能知道的那样,我对编程知之甚少,希望能提供任何帮助!
编辑:感谢您到目前为止的评论和帮助,我非常感谢您的时间。我的问题是,由于这是在学校的项目工作,我需要使用数组(出于某种莫名其妙的原因)。
仅供参考,在输入文件中,数字/姓名/性别/分数由 TAB('/t')分隔。
有什么办法可以解决上述问题,同时坚持使用数组而不使用向量或地图?