设计一学生注册信息登记程序,该程序要求达到以下要求: a.学生信息包括姓名,学号,性别; b.学生信息要求能够循环从键盘输入,如果输入0 0 0,则退出输入; c.将所有输入的学生信息按文本文件的方式存储到一名为stureginfo.txt的文件中,文件中存储信息的格式如下: 姓名:张三 学号:10521030146 性别:男 d.停止输入后,程序读出存储到stureginfo.txt文件中的所有信息,并显示在屏幕上。用c++编程,getline函数不要写在while里面
时间: 2024-02-03 19:14:48 浏览: 17
以下是一种可能的解决方案:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ofstream outfile("stureginfo.txt"); // 打开文件用于写入
if (!outfile) { // 如果打开失败
cout << "无法打开文件!" << endl;
return -1;
}
string name, id, gender;
while (true) { // 循环读入学生信息
cout << "请输入学生信息(姓名 学号 性别):";
cin >> name >> id >> gender;
if (name == "0" && id == "0" && gender == "0") { // 如果输入结束
break;
}
outfile << "姓名:" << name << " 学号:" << id << " 性别:" << gender << endl; // 写入文件
}
outfile.close(); // 关闭文件
ifstream infile("stureginfo.txt"); // 打开文件用于读取
if (!infile) { // 如果打开失败
cout << "无法打开文件!" << endl;
return -1;
}
string line;
while (getline(infile, line)) { // 逐行读取文件内容并输出到屏幕
cout << line << endl;
}
infile.close(); // 关闭文件
return 0;
}
```
该程序使用了 `ofstream` 和 `ifstream` 两个类来进行文件的写入和读取操作,分别对应于文件输出流和文件输入流。在写入文件时,程序将每个学生信息写成一行,每个字段之间用空格隔开,并在每个字段前面加上相应的标签。在读取文件时,程序使用 `getline` 函数逐行读取文件内容,并输出到屏幕上。