尝试使用文本文件初始化多个结构变量
Attempting to initialize multiple Struct Variables using a text file
这个问题可能措辞不佳,但我可以在这里更好地解释它。基本上,我已经初始化了结构和需要使用它的 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
.
相关文章:
- 在类构造函数中使用结构变量
- 在类构造函数中定义结构变量的参数
- 为什么我们再次从结构对象创建结构变量?
- 如何从其他结构访问受保护的结构变量
- 指向结构变量的指针未保存到eeprom
- 为什么我的程序没有更改结构变量中的值?
- 在 CPP 中初始化 typedef 结构变量
- 带有大结构变量的 CUDA 内核函数给出了错误的结果
- 有没有办法初始化不涉及编写构造函数的新结构变量?
- 结构变量查询
- 在结构声明的分号之前声明的结构变量是否为全局变量
- C++ 如何访问指针的结构变量
- 使用指向结构变量成员的指针访问该结构的成员的地址
- 为什么在 sizeof() 函数中与 * 运算符一起使用和不使用 * 运算符时,指向结构变量的指针大小会有所不同?
- 如何在类别内的类中访问类中的结构变量
- 尝试使用文本文件初始化多个结构变量
- 从类对象到结构变量的 memcpy
- C++结构变量初始化时出现问题
- 如何在 C++ 中使用带有类/结构变量的列表
- 动态数组添加元素而不创建结构变量/对象