尝试使用文本文件初始化多个结构变量

Attempting to initialize multiple Struct Variables using a text file

本文关键字:结构 变量 初始化 文件 文本      更新时间:2023-10-16

这个问题可能措辞不佳,但我可以在这里更好地解释它。基本上,我已经初始化了结构和需要使用它的 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 部分?任何帮助不胜感激!

编辑:我忘了补充一点,我受到限制,无法使用字符串库。

重载 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()
    ...
}

这在使用任何std::istream对象时应该有效,这意味着包括std::cin .