按行读取文件按空格分割到vector

可以按照行读取文件,并按照空格分割每一行的内容存储到 vector 中,具体实现如下:

#include <fstream>
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main() {
    vector<vector<string>> data; // 定义一个二维 vector 用来存储数据
    ifstream in_file("file.txt"); // 打开文件
    if (!in_file) {
        cerr << "无法打开文件!" << endl;
        return 1;
    string line;
    while (getline(in_file, line)) { // 逐行读取文件内容
        vector<string> row; // 定义一个 vector 用来存储每一行的数据
        stringstream ss(line);
        string field;
        while (getline(ss, field, ' ')) { // 按照空格分割每一行的内容
            row.push_back(field); // 将分割后的内容存储到 vector 中
        data.push_back(row); // 将每一行的数据存储到二维 vector 中
    in_file.close(); // 关闭文件
    // 输出二维 vector 中的数据
    for (const auto& row : data) {
        for (const auto& field : row) {
            cout << field << " ";
        cout << endl;
    return 0;

其中,ifstream 是 C++ 的文件输入流类,用于打开文件并从文件中读取数据。getline 函数用于逐行读取文件内容,stringstream 是用于字符串流处理的类,可以将字符串按照指定的分隔符进行分割。vector 是 C++ 的标准容器,用于存储一组数据。最后,我们遍历二维 vector,输出其中的数据。

  •