所以球員我必須從一個文本文件,它看起來像這樣試圖從文本文件中讀取到一個對象數組
A 0 3
B 2 6
創建從信息5個作業對象-C 4 4
d 6 5
E 8 2
的左欄是它的名字,接下來就是到達時間,最後一個是時間 這是我現在所擁有的
#include <iostream>
#include <fstream>
#include "Job.hpp"
using namespace std;
int main(int argc, const char * argv[]) {
string fileinfo;
string programname;
//gets Jobs.txt from commandline
programname.append(argv[1]);
Job jobs[5];
fstream afile;
//reads in from the file to create job objects
afile.open(programname);
if(afile.fail()){
cout <<"file could not be opened " << programname <<endl;
}
while(!afile.eof())
{
getline(afile,fileinfo);
int i = 0;
//cout <<fileinfo[0] <<endl;//gets next letter
//cout <<fileinfo[2] <<endl;//gets next arrival time
//cout << fileinfo[4] <<endl;//gets next duration time
jobs[i].setletter(fileinfo[0]);
jobs[i].setarrivaltime(fileinfo[2]);
jobs[i].setduration(fileinfo[4]);
i++;
}
afile.close();
cout << jobs[1].getletter() <<endl;
cout << jobs[2].getletter() <<endl;
cout << jobs[3].getduration() <<endl;
現在當我去和我的不同對象打印出來的值(就像在代碼的底部一樣)在我關閉文件後,它們都包含了文件第一行的信息。 我不知道爲什麼,因爲技術上我增加'我'後,我設置所有的工作值,然後fileinfo獲取該文件的下一行,所以這對我來說似乎應該工作。 但像i的值從那些3個COUTS獲得底部的結果是
一個
一個
Job類
Job::Job(){}
Job::Job(char let, int arrive, int dura){
letter = let;
arrivaltime = arrive;
duration = dura;
}
,它也有所有的獲取和設置定義 所以你們可以幫助我能夠從文件正確讀入並創建我的目標ct array
現在循環內部帶有「i」的部分是固定的,我所有的int值現在都在ASCII對應部分中,那麼如何將值轉換爲十進制整數? – Yaboy93
好吧,我也解決了這個問題,只需從每個值中減去48就可以了 – Yaboy93