小能豆

如何C++读取外在TXT文本或WPS表格数据?

javascript

如何C++读取外在TXT文本或WPS表格数据?我是一个蒟蒻,我想做一个学习成绩管理分析系统,现在想把成绩从TXT或WPS表格中读取数据和将处理数据放回。避免每次输入成绩,关闭程序数据丢失


阅读 54

收藏
2024-06-17

共1个答案

小能豆

在 C++ 中读取外部的 TXT 文本文件或 WPS 表格数据可以通过标准库中的文件操作功能实现。以下是简单的示例代码,展示了如何读取和写入 TXT 文件中的数据。WPS 表格(如 xls、xlsx 格式)的读取需要使用专门的库,比如 libxlslibxlsxwriter,这些库可以帮助你读取和写入 Excel 格式文件。

读取和写入 TXT 文件示例

假设你有一个 TXT 文件 grades.txt,文件中存储了学生姓名和成绩,每行一个学生的记录,格式为 姓名 成绩,例如:

Alice 85
Bob 78
Charlie 92

读取数据示例:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

struct Student {
    string name;
    int score;
};

vector<Student> readGradesFromFile(const string& filename) {
    vector<Student> students;
    ifstream infile(filename);

    if (!infile) {
        cerr << "Error opening file " << filename << endl;
        return students; // 返回空的学生列表
    }

    string name;
    int score;
    while (infile >> name >> score) {
        students.push_back({name, score});
    }

    infile.close();
    return students;
}

int main() {
    string filename = "grades.txt";
    vector<Student> students = readGradesFromFile(filename);

    // 打印读取的学生信息
    for (const auto& student : students) {
        cout << "Name: " << student.name << ", Score: " << student.score << endl;
    }

    return 0;
}

写入数据示例:

void writeGradesToFile(const string& filename, const vector<Student>& students) {
    ofstream outfile(filename);

    if (!outfile) {
        cerr << "Error opening file " << filename << endl;
        return;
    }

    for (const auto& student : students) {
        outfile << student.name << " " << student.score << endl;
    }

    outfile.close();
}

int main() {
    string filename = "grades.txt";
    vector<Student> students = readGradesFromFile(filename);

    // 对数据进行处理...

    // 将处理后的数据写回文件
    writeGradesToFile(filename, students);

    return 0;
}

注意事项:

  • 在实际使用中,应该确保文件路径正确,并处理文件打开失败的情况。
  • 以上示例中使用了 ifstreamofstream 类来分别进行读取和写入操作。
  • 若要处理 WPS 表格或其他格式的 Excel 文件,需要使用专门的第三方库来解析和生成这些文件。例如,对于 Excel 文件,可以考虑使用 libxlslibxlsxwriter 等库。

通过以上方法,你可以实现在 C++ 程序中读取外部的文本文件数据(如 TXT),进行处理后再将数据写回文件,从而实现持久化存储和避免每次运行程序都需要重新输入数据的问题。

2024-06-17