请问这个实例我敲出来为什么结果不正确
发表在C++视频课程答疑 2019-01-19
是否精华
版块置顶:

C++第二季6.4的读取文件的某一位置那个例子————我的代码如下:

附件---:

代码:.txt

cout<<"正在打开文件。。。"<<endl;//提示信息

ifstream file("D:/文件test/test7.txt",ios::in);//打开文件

if(!file){ cout<<"Exit with unknown error."<<endl; return 0; }//打开失败输出提示 结束main()

char buf[128];memset(buf,'\0',128);//缓冲区初始化

cout<<"------文件内容:-----"<<endl;//提示信息

while(!file.eof())//当没到达文件结尾

{

    file.getline(buf,128);//读值
    
    cout<<buf<<endl;//输出值
    
}

cout<<"-----文件结束------"<<endl;//提示信息

file.seekg(0,ios::end);//将文件指针转移到末尾

int maxpos=file.tellg();//获取当前指针即最大指针值

int pos;//存取用户输入位置

cout<<"输入你要读的位置:";//提示用户输入位置

cin>>pos;//用户输入位置

if(pos>maxpos){

    cout<<"位置越界!"<<endl;//如果用户输入超出最大 输出异常
    
    return 0;//结束程序。
    
}

char ch;//存储用户指向的值

file.seekg(pos);//指向pos索引的位置

file.get(ch);//获取当前位置的值

cout<<"值是  : "<<ch<<endl;//输出值

file.close();//关闭流

return 0;

文件test7.txt是没有问题的,

前面输出的内容也都正常。
但是输入某一特定位置,
输出的内容是一个问号   ?
{}请问这个应该怎么解决{}
谢谢老师。!


2019-01-19 20:00:51编辑
分享到:
精彩评论 1
mrkj_0257
学分:1507 LV9
2019-01-20
沙发
我中间 ,输出完所有内容之后把文件重新close又open了一遍就不会出现这种情况了,这又是为什么
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照