【发布时间】:2015-08-13 16:16:16
【问题描述】:
这是家庭作业,我已经自己开发了大部分内容。 我只是不断收到一个奇怪的故障。在下面的输入文件中,我应该将名称和数字放入 6 个不同的变量中。名称转换为字符串,数字转换为数组,最后两个数字转换为整数。
当我运行我的程序并想要获取任何字符串的第十个数字时,它会向我显示下一个数字,例如。希望 94 在 Alice 的成绩中得到 15。
这是文件,这是代码,请帮忙。
#include <iostream>
#include<string>
#include <fstream>
#include <sstream>
using namespace std;
//all of a students info is stored here
struct Student {
string name;
int asgn[9];
int quiz[9];
int lab[9];
int midterm;
int final;
};
Student s[22];
int main(){
string str;
ifstream in;
in.open("C:/CS161Grades.txt");
for (int i = 0; i < 22; i++){
getline(in, str);
stringstream ss(str);
ss >> s[i].name >> s[i].asgn[0] >> s[i].asgn[1] >> s[i].asgn[2] >> s[i].asgn[3] >> s[i].asgn[4] >> s[i].asgn[5] >> s[i].asgn[6] >> s[i].asgn[7] >> s[i].asgn[8] >> s[i].asgn[9]
>> s[i].quiz[0] >> s[i].quiz[1] >> s[i].quiz[2] >> s[i].quiz[3] >> s[i].quiz[4] >> s[i].quiz[5] >> s[i].quiz[6] >> s[i].quiz[7] >> s[i].quiz[8] >> s[i].quiz[9]
>> s[i].lab[0] >> s[i].lab[1] >> s[i].lab[2] >> s[i].lab[3] >> s[i].lab[4] >> s[i].lab[5] >> s[i].lab[6] >> s[i].lab[7] >> s[i].lab[8] >> s[i].lab[9]
>> s[i].midterm
>> s[i].final;
cout << s[2].name << s[2].lab[9] << endl;
}
//pause and stop
getchar();
getchar();
return 0;
}
该文件的格式与 20 名学生相同
Name Assignments Quizzes Labs MidT Final
Alice 71 97 64 30 99 54 8 88 92 94 15 55 91 37 71 1 5 52 37 46 6 19 17 68 7 97 36 31 33 10 72 46
【问题讨论】:
-
输入行太长了,太糟糕了。你为什么不循环???
标签: c++ arrays text input struct