這是作業,我已經開發了我自己的大部分。 我只是不斷得到一個奇怪的故障。在下面的輸入文件中,我應該把名字和數字放在6個不同的變量中。將名稱轉換爲字符串,將數字轉換爲數組,將最後兩個數字轉換爲int。從txt文件輸入數字。奇怪的故障C++
當我運行我的程序,並想抓住任何字符串的第十個數字時,它會向我呈現下一個字符串,例如。希望在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;
}
文件被格式化爲例如具有二十學生
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
輸入行太長了,太糟糕了。你爲什麼不循環? – Maresh