如何C++读取外在TXT文本或WPS表格数据?我是一个蒟蒻,我想做一个学习成绩管理分析系统,现在想把成绩从TXT或WPS表格中读取数据和将处理数据放回。避免每次输入成绩,关闭程序数据丢失
在 C++ 中读取外部的 TXT 文本文件或 WPS 表格数据可以通过标准库中的文件操作功能实现。以下是简单的示例代码,展示了如何读取和写入 TXT 文件中的数据。WPS 表格(如 xls、xlsx 格式)的读取需要使用专门的库,比如 libxls 或 libxlsxwriter,这些库可以帮助你读取和写入 Excel 格式文件。
libxls
libxlsxwriter
假设你有一个 TXT 文件 grades.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; }
ifstream
ofstream
通过以上方法,你可以实现在 C++ 程序中读取外部的文本文件数据(如 TXT),进行处理后再将数据写回文件,从而实现持久化存储和避免每次运行程序都需要重新输入数据的问题。