我是一個非常新手的程序員,我試圖製作一個程序,讀取一個txt文件,其中包含5名學生的名字(僅限於第一名)以及四個考試分數學生。我試圖將名稱讀入名爲students的數組中,然後將分數讀入4個單獨的數組,名爲test1,test2,test3,test4,然後從監視器中顯示它。文件看起來像這樣:從txt文件中分離出平行數組
史蒂夫78 65 82 73
肖恩87 90 79 82
安妮92 90 89 96
卡羅爾72 65 65 60
凱西34 50 45 20
我很難與br消耗陣列並組織它們。有人能幫我嗎?請記住我是新手,所以我不知道有關編程的大量內容。
這是我的代碼至今:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <ctime>
#define over2 "\t\t"
#define over3 "\t\t\t"
#define over4 "\t\t\t\t"
#define down5 "\n\n\n\n\n"
using namespace std;
int main(int argc, char *argv[])
{
ifstream inputFile;
//Constant for max string size
const int SIZE = 5;
//Constant for the scores
string names[SIZE], fileName, line, test1[SIZE], test2[SIZE], test3[SIZE], test4[SIZE];
//input section, user enters their file name
cout << down5 << down5 << over2 << "Please enter your file name: ";
cin >> fileName;
system("CLS");
//open the file containing the responses
inputFile.open(fileName.c_str());
cout << endl;
//kicks you out if file isn't found
if (inputFile)
{
for(int i = 0; i < SIZE; i++)
{
getline(inputFile, line);
names[i] = line;
getline(inputFile, line);
test1[i] = line;
getline(inputFile, line);
test2[i] = line;
getline(inputFile, line);
test3[i] = line;
getline(inputFile, line);
test4[i] = line;
}
inputFile.close();
}
cout << down5 << over3 << "Student\tTest1\tTest2\tTest3\tTest4\n";
cout << over3 << "-------\t-----\t-----\t-----\t-----\n";
for(int i = 0; i < SIZE; i++)
{
cout << over3 << names[i] << endl;
cout << over3 << test1[i] << endl;
cout << over3 << test2[i] << endl;
cout << over3 << test3[i] << endl;
cout << over3 << test4[i] << endl;
}
return 0;
}
當我運行這個功能,它只是輸出隨機數字......這究竟是爲什麼會是什麼?另外,我非常新手,你的get_column函數對我來說絕對沒有意義。 :/ – Jameson
get_column()函數接受一個字符串和一個「起始點」,並從它在「起始」點之後找到的第一組(非空白)字符中創建一個* new *字符串。如果你看到奇怪的結果,確保你在第一次調用之前將「開始」位置設置爲「0」;之後,開始位置由'pos + = len'線更新。要理解* how *的工作原理,請閱讀['isspace()'](http://pubs.opengroup.org/onlinepubs/009695399/functions/isspace.html)函數和['substr()']( https://msdn.microsoft.com/en-us/library/7w2119c6.aspx)方法。 – GoBusto
哇,這非常有幫助。我不能夠感謝你! – Jameson