C++文件指针的问题

.千山. 2012-04-08 06:11:02

下面的程序,选择 2 查看的时候,第一次查看可以正常显示信息。第二次就不行了。。。

文件中的内容,大家可以选1 自己输入一些。
#include<fstream>
#include<iostream>
#include<string>
using namespace std;

void main()
{
fstream file;
string name,sex,stuno;
int ctrl;
file.open ("sturegin.txt",ios::app|ios::out|ios::in);
if(file.fail ())
{
cout<<"文件打开错误!"<<endl;
exit(1);
}
while(1)
{
cout<<" 1:添加资料 2:查看信息 0:保存退出";
cin>>ctrl;

switch(ctrl)
{
case 1:
while(ctrl==1)
{
cout<<"请输入姓名: "; cin>>name;
file<<" 姓名:"<<name<<'\n';
cout<<"请输入性别: "; cin>>sex;
file<<" 性别:"<<sex<<'\n';
cout<<"请输入学号: "; cin>>stuno;
file<<" 学号:"<<stuno<<'\n';
cout<<"1:继续信息录入 0:退出信息录入\n";
cin>>ctrl;
} break;
case 2:
file.seekg(0,ios::beg); // !!!!!!!!
while(!file.eof())
{
getline(file,name,'\n');
getline(file,sex,'\n');
getline(file,stuno,'\n');
cout<<name<<endl;
cout<<sex<<endl;
cout<<stuno<<endl;
}
break;
case 0:
file.close();
return ;
break;


}

}
}
...全文
125 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltqin 2012-04-09
  • 打赏
  • 举报
回复
file.clear(); //添加,清楚所有状态(good state)
file.seekg(0,ios::beg); // !!!!!!!!
while(!file.eof()) //退出出时状态为eof
{
.千山. 2012-04-08
  • 打赏
  • 举报
回复
不行,也没道理啊
evencoming 2012-04-08
  • 打赏
  • 举报
回复
在case 1:
的下面加上
file.seekp(0,ios::end);试试?

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧