定义一个结构体数组存放十个学生的学号,姓名和成绩,从键盘输入这十个学生的以上内容,存入文件stud.txt,关闭文件,打开文件,将数据读出,查看是否正确再关闭文件
时间: 2023-10-14 17:04:15 浏览: 130
C语言课设—结构体数组实现学生成绩管理功能.doc
以下是实现代码:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Student {
string id;
string name;
double score;
};
int main() {
Student students[10];
// 从键盘输入学生信息
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i + 1 << "个学生的学号、姓名和成绩,中间以空格分隔:" << endl;
cin >> students[i].id >> students[i].name >> students[i].score;
}
// 将数据存入文件
ofstream outfile("stud.txt");
if (!outfile) {
cerr << "无法创建文件" << endl;
return -1;
}
for (int i = 0; i < 10; i++) {
outfile << students[i].id << " " << students[i].name << " " << students[i].score << endl;
}
outfile.close();
// 读取文件并输出内容
ifstream infile("stud.txt");
if (!infile) {
cerr << "无法打开文件" << endl;
return -1;
}
for (int i = 0; i < 10; i++) {
infile >> students[i].id >> students[i].name >> students[i].score;
cout << "第" << i + 1 << "个学生的学号、姓名和成绩为:" << students[i].id << " " << students[i].name << " " << students[i].score << endl;
}
infile.close();
return 0;
}
```
以上代码中,我们定义了一个结构体 `Student` 表示学生,包含学号、姓名和成绩三个属性。在 `main()` 函数中,我们首先从键盘输入十个学生的信息,然后将这些信息存入文件 `stud.txt` 中。接着,我们读取这个文件,并将读取到的数据存入结构体数组 `students` 中,最后再输出这些数据。
需要注意的是,我们使用 `ofstream` 和 `ifstream` 分别来写入和读取文件。其中,`ofstream` 可以通过 `open()` 函数指定文件名和打开方式(默认是覆盖写入),而 `ifstream` 可以直接通过构造函数来指定文件名和打开方式。在写入和读取文件时,我们使用空格或换行符来分隔不同的属性值。
阅读全文