欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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