游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2415|回复: 3

C++ fstream中读文件的问题

[复制链接]

3

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2004-6-5 08:23:00 | 显示全部楼层 |阅读模式
fstream iofile;

iofile.open("friend.addr", ios::in);
if(NULL == iofile)
{
    return 0;
}

while(!iofile.eof())   // iofile.eof()这个函数为什么读到最后一个纪录后,还要读一次
{
    iofile.read((char*)(&myTestInfo), sizeof(myTestInfo));
}
返回空的?
难道还要根据其它来判断么? [em7]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-5 12:18:00 | 显示全部楼层

Re:C++ fstream中读文件的问题

别的不管了,你用
if(NULL == iofile)来判断是否打开就是错误的。
首先,iofile不是指针,拿它和NULL判断是错误的。
应该用if(iofile.fail())

3

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2004-6-5 14:00:00 | 显示全部楼层

Re: C++ fstream中读文件的问题

Thank
理论上是的.
这个在vc6.0 或是vc.net上是不行的。
但是在SuSe8.1上用g++编译倒是可以的.


string s;
int i;

循环两次以上, getline的输入就被冲掉乐, why?
cout << "input :";
getline(cin, s, '\n');
cout << "input :";
cin >> i;

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-5 14:31:00 | 显示全部楼层

Re:C++ fstream中读文件的问题

程序没问题,终端的问题。
你输入了s之后,按两下回车就好了。
想解决这个问题的话,不要用getline,直接用
cin >> s;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-1 14:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表