C++如何读取txt文件指定行数之间的内容并将每一行的数字(比如说其中一行数据是这样的:0.002370 0.026990 0.127029)分开存入不同数组内
时间: 2024-02-25 19:58:07 浏览: 259
可以按照行读取txt文件,并使用stringstream将每行数据按照空格进行分割,然后将分割后的数字存入不同的数组中。以下是一个示例代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
int main() {
// 打开文件
ifstream file("data.txt");
// 检查文件是否打开成功
if (!file.is_open()) {
cout << "Failed to open file!" << endl;
return -1;
}
// 行数范围
int start_line = 2; // 开始行
int end_line = 4; // 结束行
// 存储分割后的数字
vector<vector<double>> numbers;
// 读取文件
string line;
int line_num = 0;
while (getline(file, line)) {
line_num++;
if (line_num >= start_line && line_num <= end_line) {
stringstream ss(line);
vector<double> row_numbers;
double number;
while (ss >> number) {
row_numbers.push_back(number);
}
numbers.push_back(row_numbers);
}
}
// 输出结果
for (int i = 0; i < numbers.size(); i++) {
cout << "Row " << i + start_line << ": ";
for (int j = 0; j < numbers[i].size(); j++) {
cout << numbers[i][j] << " ";
}
cout << endl;
}
// 关闭文件
file.close();
return 0;
}
```
在上面的代码中,我们首先打开了名为"data.txt"的文件,并检查是否打开成功。然后,我们指定了要读取的行数范围,并创建了一个二维vector来存储分割后的数字。接下来,我们按行读取文件,并检查当前行是否在指定的行数范围内。如果是,则使用stringstream将该行数据按照空格进行分割,并将分割后的数字存入一个vector中,然后将该vector存入二维vector中。最后,我们输出了结果并关闭了文件。
请注意,上述代码只是一个示例,需要根据实际情况进行修改。例如,如果要读取的文件中每行数字的数量不同,则需要对代码进行修改以适应该情况。
阅读全文