这个问题的措辞可能很差,但我可以在这里做得更好。基本上,我已经初始化了结构和需要使用它的5个变量。这一切都顺利完成,问题来自于需要使用文本文档来设置每个结构的值。我需要一次性分配所有5个,因为数据来自文本文件。要初始化其中一个变量,代码看起来像这样;
int main(void){
ifstream inputFile;
ofstream outputFile;
char input[10];
char output[10];
cout << "Enter Input File: ";
cin >> input;
cout << "Enter Output File: ";
cin >> output;
inputFile.open(input);
outputFile.open(output);
struct Rental{
int year;
char make[10];
char model[10];
float price;
bool available;
};
Rental Car1, Car2, Car3, Car4, Car5;
inputFile >> Car1.make;
inputFile >> Car1.model;
inputFile >> Car1.price;
inputFile >> Car1.available;
我需要找到一种方法来替换所有五个Car1(它是一个结构变量),以便文本文档可以继续扫描。反正只是替换结构的Car1部分?任何帮助表示赞赏!
编辑: 我忘了添加我的限制,无法使用字符串库。
答案 0 :(得分:1)
为istream重载std::istream& operator >>(std::istream &inputFile, Rental& car) {
inputFile >> car.make;
inputFile >> car.model;
inputFile >> car.price;
inputFile >> car.available;
return inputFile;
}
运算符
int main () {
ifstream inputFile;
ofstream outputFile;
char input[10];
char output[10];
cout << "Enter Input File: ";
cin >> input;
cout << "Enter Output File: ";
cin >> output;
inputFile.open(input);
outputFile.open(output);
Rental Car1, Car2, Car3, Car4, Car5;
inputFile >> Car1 >> Car2 >> Car3 >> Car4 >> Car5;
inputFile.close()
...
}
现在在main中,您可以这样做:
std::istream
使用任何std::cin
对象时都应该这样做,这意味着包括{{#each data }}
{{> partial parameter=somethingFromThisContext }}
{{/each}}
。