C++ 文件输入输出流
程序员文章站
2022-03-13 17:07:53
...
头文件student
#if !defined(STUDENT_H)
#define STUDENT_H
#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <fstream>
using namespace std;
class student{
private :
string number;
double score;
public:
void setNum(string s){
number =s;
}
void setScore(double s){
score=s;
}
string getNum(){
return number;
}
double getScore(){
return score;
}
void set(vector<student> &);
void display(vector<student> &);
void read();
};
#endif
源文件student
#include "student.h"
void student ::display (vector <student> & c){
cout<<"学号"<<setw(20)<<"成绩"<<endl;
for(int i=0; i< c.size() ; i++){
cout<<c[i].getNum()<<setw(20)<<c[i].getScore()<<endl;
}
}
//文件输出流
void student::set(vector<student> & c){
student a;
string s;
double b;
while(1){
cout<<"学号:";
cin>>s;
if(s =="0"){
ofstream wst("stud.txt");
if(!wst){
cout<<"没有建立文件"<<endl;
return;
}
for(int i =0 ; i< c.size() ; i++){
wst<<c[i].number<<" "<<c[i].score<<" ";
}
wst.close();
cout<<"学生共有:"<<c.size()<<endl;
return;
}
a.setNum(s);
cout<<"成绩:";
cin>>b;
a.setScore(b);
c.push_back(a);
}
}
//文件输入流
void student ::read(){
string number;
double score;
ifstream rst("stud.txt");
if(!rst){
cout<<"文件打不开"<<endl;
return;
}
cout<<"学号"<<setw(20)<<"成绩"<<endl;
while(1){
rst>>number>>score;
if(rst.eof()){
rst.close();
return;
}
cout<<number<<setw(20)<<score<<endl;
}
}
void main(){
vector<student> st;
student stud;
stud.set(st);
cout<<"展示学生"<<endl;
stud.display(st);
cout<<"存入文件信息"<<endl;
stud.read();
}
测试结果
学号:1
成绩:90
学号:2
成绩:80
学号:3
成绩:90
学号:0
学生共有:3
展示学生
学号 成绩
1 90
2 80
3 90
存入文件信息
学号 成绩
1 90
2 80
3 90
Press any key to continue
转载于:https://my.oschina.net/saulc/blog/2243717
上一篇: android多功能列表适配器 recycleview封装
下一篇: Java的文件输入输出