将文本文件读入整数数组
Reading a text file into an array of integers
给定一个文件,有一些空行,一些只包含整数的行,我将如何制作一个包含所有整数的数组?我已经找到了字符串的方法,但我需要一个整数列表。我想使用 getline 来做到这一点,但 getline 给出了一个字符串"line">
一个不起作用的示例,它返回文件中的整数数并修改给定的数组:
int getLinesFromFile(string fileName, int arr[], int arrLen) {
ifstream userFile;
userFile.open(fileName);
if (userFile.is_open()) {
int line;
int arrCount = 0;
while (getline(userFile, line)) {
if (tline.length() != 0 && arrCount < arrLen) {
arr[arrCount] = line;
arrCount++;
}
}
return arrCount;
}
else {
return -1;
}
userFile.close();
}
您可以使用>>
-运算符来读取值。它将忽略值之间的任何空格,包括空行。下面是使用它的函数的修改版本:
int getLinesFromFile(std::string fileName, int arr[], int arrLen) {
std::ifstream userFile(fileName);
int count = 0;
while(count < arrLen) {
int value;
userFile >> value;
if (!userFile.good())
return -1;
arr[count++] = value;
}
return count;
}
请注意,您无需手动打开和关闭文件,RAII将为您处理。此外,如果文件无法成功打开,或者在读取文件时发生任何其他错误,userFile.good()
将返回false
,因此您可以使用它来检测并返回错误。目前还不清楚你的函数是否应该准确地读取arrLen
值,或者更少值是否也有效。但至少你应该注意不要写超过提供的数组的末尾。
相关文章:
- 从二进制文件中读取整数数组
- 新的整数数组向右移动?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- 从两个 4x64 位整数数组中获取取模
- 字符到整数数组
- 从函数参数 [C++] 复制整数数组
- 指向整数数组和打印总和的指针
- 使用可变参数函数将整数和/或整数数组放入单个 int 数组中
- 线程安全整数数组?
- 整数数组中最长的回文
- 在大整数数组中查找子数组
- 查找整数数组中最接近的数字
- 创建<int>对整数数组指针的矢量引用 (C++)
- 整数指针数组的元素是否可以指向整数数组?
- 如何将整数数组相乘得到一个数字?
- 当 map 是一个整数数组并且由 operator[] 创建时,它是否初始化其映射类型
- 将文本文件读入整数数组