如何将文本文件的特定行读取到 int 类型的数组中C++?
How can I read specific lines of a text file into an array of type int in C++?
我需要将文本文件读入数组。文本文件的格式设置为第一行包含数组大小,以下行是数组的元素:
6
5
3
2
1
6
4
其中数组大小等于 6。需要以以下格式读取文件:
a.exe < testfiles/input
这是我到目前为止所拥有的:
int main(){
int arraySize = 0;
cin >> arraySize;
int array[arraySize];
for(i = 1; i < arraySize; i++){
cin >> array[i];
}
for(j = 0; j < arraySize-1; j++){
//insertion sort here
}
}
数组保持全部为零,但大小正确。任何人都可以看到我的错误吗?
编辑:我已经修复了要动态分配的数组。程序现在可以执行而没有错误,但现在整个数组都充满了文本文件的第二个条目,在本例中为 5。
由于这个问题读起来像家庭作业,我猜你不允许使用std
。但是,如果您有机会,这里有一种更安全的方式来完成您正在尝试的事情:
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> nums;
int arraySize;
cin >> arraySize;
for(int i = 0; i < arraySize; i++){
int value;
cin >> value;
nums.push_back(value);
}
for (auto num : nums)
cout << num << " ";
return 0;
}
在 C++ 数组声明中,数组大小必须是整数常量表达式。最简单的更改是使用动态数组:
int main(){
using namespace std;
int arraySize = 0;
cin >> arraySize;
int * array = new int[arraySize];
for(int i = 1; i < arraySize; i++){
cin >> array[i];
}
for(int j = 0; j < arraySize-1; j++){
//insertion sort here
}
delete [] array;
}
相关文章:
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 多维数组 C++ 中数组下标的类型"int[int]"无效
- 指针问题:从不兼容的类型"int"分配给"int *"
- 数组类型 int[n][n] 不可赋值,因为表达式必须具有常量值
- 错误:数组下标的类型"int[int]"无效
- 运行时错误:引用绑定到类型"int"的未对齐地址0xbebebebebebebec6,这需要 4 个字节对齐 (stl_vector.h)
- 类型为 "int*" 的参数与 C++ 中错误类型"int**"参数不兼容
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- 从类型bankAccount的返回值到函数返回类型int没有可行的转换
- for 循环说 - 错误 成员引用基类型"int [13]"不是结构或联合
- 运行时错误:有符号整数溢出:964632435 * 10 无法在类型 'int' 中表示
- 如何增加模板类型 int 参数?
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 如何为底层类型 int 的枚举专门化类
- 数组下标编译的无效类型'int[int]'由于 -Wfatal 错误而终止
- 不能将 "const char*" 类型的值分配给类型 "int" 的实体
- 数组下标的无效类型INT [INT]
- 请求在"伺服控制器"中请求成员"附加",该成员属于非类类型"int"
- 数组类型 'int [8]'不可分配
- 未声明的标识符和类型"int"从 main 调用类时出现意外错误