我想讀取一個字符串行的行下來.txt文件,以便啓動一個使用構造函數,需要一個字符串的對象數組。閱讀輸入構建一個對象
文本文件是這樣寫
TransAm
Mustang
Corvette
我覺得我的循環不迭代的信息我想正確設置。有沒有簡單的方法來完成這個? main.cc
#include <string>
#include <iostream>
#include "Car.cc"
#include <fstream>
using namespace std;
int main()
{
Car cars[3];
string STRING;
ifstream infile;
infile.open("cars.txt");
// THIS IS HOW IT'S ACHIEVED USING FOR-LOOP - Sam
for(int i = 0; i<3 && infile;++i){
getline(infile,STRING);
cars[i].setName(STRING);
}
/* THIS IS WHAT I HAD
while(!infile)
{
getline(infile,STRING);
for(int i = 0; i<sizeof(cars);i++){
cars[i].setName(STRING);
}
}
*/
infile.close();
for(int j = 0;j<sizeof(cars);j++){
cars[j].print();
}
}
Car.h
#include <string>
using namespace std;
class Car{
public:
Car();
Car(string);
string getName();
void setName(string);
void print();
private:
string name;
};
Car.cc
#include <string>
#include "Car.h"
using namespace std;
Car::Car()
{
}
Car::Car(string s)
{
setName(s);
}
void Car::setName(string s)
{
name = s;
}
string Car::getName()
{
return name;
}
void Car::print()
{
cout << name;
}
'而(!INFILE)'我覺得你的循環就什麼都沒有。 – Blacktempel
將'while(!infile)'改爲'while(getline(infile,STRING))' –
我試着一段時間循環但結果無法讀取並設置「Trans-Am」 'while while(infile) \t { \t \t對(INT I = 0; I <3 && infile中; ++ⅰ){ \t \t \t函數getline(infile中,STRING); \t \t \t cars [i] .setName(STRING); \t \t} \t}' – Genesis