首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++输入输出流中输出总显示文件不能打开

2013-06-26 
求助:C++输入输出流中输出总显示文件不能打开#includestring#includefstream#includeiostreamusing

求助:C++输入输出流中输出总显示文件不能打开
#include<string>
#include<fstream>
#include<iostream>
using namespace std;

class STUDENT{
friend class NOTEBOOK ;
private:
string bh,xm,xb,zy,bj,nj,dz,dh;
public:
void srBh() {//输入编号
cout<<"请输入学生编号:";
cin>>bh;
}
void srXm() {//输入姓名
cout<<"请输入学生姓名:";
cin>>xm;
}
void srXb() {//输入性别
cout<<"请输入学生性别:";
cin>>xb;
}
void srZy() {//输入专业
cout<<"请输入学生专业:";
cin>>zy;
}
void srBj() {//输入班级
cout<<"请输入学生班级:";
cin>>bj;
}
void srNj() {//输入年级
cout<<"请输入学生年级:";
cin>>nj;
}
void srDz() {//输入住址
cout<<"请输入学生家庭住址:";
cin>>dz;
}
void srDh() {//输入电话
cout<<"请输入学生电话:";
cin>>dh;
}
void scXX(){//输出学生信息
cout<<"你输入的学生信息如下:"<<endl;
cout<<"学生编号:"<<bh<<endl;
cout<<"学生姓名:"<<xm<<endl;
cout<<"学生性别:"<<xb<<endl;
cout<<"学生专业:"<<zy<<endl;
cout<<"学生班级:"<<bj<<endl;
cout<<"学生年级:"<<nj<<endl;
cout<<"学生住址:"<<dz<<endl;
cout<<"学生电话:"<<dh<<endl;
      }
};

class NOTEBOOK{
friend int main();
private:
char filename[20];
fstream f;
STUDENT s;
public:
NOTEBOOK(char *f){
strcpy(filename,f);
}
void creat( ){
f.open(filename, ios::in|ios::trunc);
f.close();
}
int append( ){
f.open(filename, ios::in|ios::app);
if(!f){
cerr<<"文件不能打开!"<<endl;
return false;
}
else{
        s.srBh();
s.srXm();
s.srXb();
s.srZy();
s.srNj();
s.srBj();
s.srDz();
s.srDh();
f<<"学生编号:"<<s.bh<<"学生姓名:"<<s.xm<<"学生性别:"<<s.xb;
f<<"专业名称:"<<s.zy<<"年级:"<<s.nj<<"班级:"<<s.bj;
f<<"家庭住址:"<<s.dz<<"电话号码:"<<s.dh<<endl;
}
}

void display( ){
char p[1];
f.open(filename, ios::in|ios::app);
if(!f){
cerr<<"文件不能打开!"<<endl;
return;
}
else{
f.seekg(0);
while(!f.eof()){
f.getline(p,100);
cout<<p<<endl;
}
}
f.close();
}
};

int main(){
int w;
  NOTEBOOK b("students.txt");
  while(true){
cout << "请选择操作:"<<endl;
cout<<"1.创建新文件"<<endl;
cout<<"2.增加新纪录"<<endl;
cout<<"3.显示纪录"<<endl;
cout<<"请输入选项:";
cin>>w;
   switch(w){
case 1:
b.creat();
break;
        case 2:
b.append();
b.s.scXX();
break;
case 3:
b.display();
break;
default:
cout<<"输入错误";
break;
         }
}
}
可以运行,但是输入后再显示却是文件不能打开。急,求解。 C++ 输入输出

分享到:
[解决办法]

引用:
你有几个大问题,在create函数中,没有创建文件成功,只有在插入记录时才创建文件了,所以你的create函数做的是无用功,open(filename,ios::out
[解决办法]
ios::trunc); 还有就是你append函数中open后忘记close, 所以流状态错误,,真心觉得你写的函数好乱,,,
open(filename,ios::out
[解决办法]
ios::trunc); 这个写错了,open(filename,ios::out);这一个就行了,指定out相当于两个都指定了 

热点排行