我可以在 c++ 中有一个 ifstream 数组吗?
Can I have an array of ifstream in c++
我需要同时打开一系列文件。使用 ifstream 对象数组处理文件会更容易。我在声明时遇到错误
ifstream fin[file_count];
error: variable length array of non-POD element type 'ifstream'
(aka 'basic_ifstream<char>')
ifstream fin[fcount];
怎么了?我看到人们在如何创建 ifstream 对象数组以及如何使用编号的文本文件填充该数组中执行此操作?
你不能创建一个非固定长度的静态数组(如果它不是常量,file_count
在运行时获取其值)。
但是,您可以使用指向流的指针数组,这可能会简化您的任务。将其视为一种选择:
ifstream* fin = new ifstream[file_count];
...
delete [] fin;
问题是您声明的是一个C++中不允许的可变大小数组。
在C++中声明数组时:
int i[size];
变量大小必须是常量整数值
为了创建具有可变大小的C++数组,您需要使用动态分配的内存:
int* i;
i = new int[size];
现在大小可以是一个变量。问题当然是,我不仅不是指针,必须这样使用,以后还必须解除分配,否则会出现内存泄漏,即您的程序在技术上保留了内存空间,但没有用于任何用途。
有关动态内存的更多信息,请点击此处。
相关文章:
- 如何在 c++ 中读取/写入无符号数组到 ifstream/ostream?
- 从 ifstream 读取 int 到 2-D 动态数组
- 将 ifstream 文件和每一行读取到数组中
- 需要根据读取的数据类型将ifstream提取到单独的数组中
- 当 ifstream 将字符读入 2D 数组时,会出现奇怪的字符
- ifstream不使用C 中的数组检索数据
- 动态分配的数组在输出时丢失 ifstream 数据
- C++ 如何处理 ifstream 和 char 数组的">>"操作?
- 尝试在c++中将文本文件(ifstream)转换为2D字符数组
- ifstream get string的字符串进入数组
- 如何创建一个ifstream对象的数组,以及如何使用编号的文本文件填充该数组
- 使用 ifstream::operator>> 从 CSV 文件加载数组
- 尝试将数据保存到数组中时出现ifstream运行时错误
- ifstream将数组结构到txt文件中,然后尽可能将其提取为数组
- 使用.open()成员函数C++的ifstream数组的错误访问代码
- 带有字符数组的 ifstream
- ifstream get() 不填充字符数组
- 使用 ifstream 从文件中读取数据并将其存储在数组中
- C++从ifstream创建一个可变大小的数组
- 在C++中,函数中使用数组,其中数据是使用ifstream从.txt文件输入数组的