| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:.txt读取中的问题
只看楼主 加入收藏
y605302737
Rank: 1
等 级:新手上路
帖 子:32
专家分:9
注 册:2013-2-2
结帖率:81.82%
收藏
已结贴  问题点数:10 回复次数:4 
.txt读取中的问题
在读取.txt时遇到一个问题
txt文件是:
y x z
yyyy yyyyy
xxxxxxxxxx
zzzz zzzzz
读取程序
程序代码:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>

int main()
{
    using namespace std;
    ifstream fin;
    fin.open("name.txt");
    if(!fin.is_open())
    {
        cerr<<"cannot open"<<endl;
        exit(EXIT_FAILURE);
    }
    string item;
    int count=0;
    getline(fin,item,'\n');
    while(fin)
    {
        ++count;
        cout<<count<<item<<endl;
        getline(fin,item,'\n');
    }
    cout<<"over gamme"<<endl;
    fin.close();
    return 0;
}
输出结果
1y x z
2yyyy yyyyy
3xxxxxxxxxx
4zzzz zzzzz
over gamme
不过将while(fin)改为while(fin.good())后的结果为:
1y x z
2yyyy yyyyy
3xxxxxxxxxx
over gamme
这是为什么,求高手指教! 谢谢!

搜索更多相关主题的帖子: zzzzz yyyyy 
2013-02-18 21:31
szwape
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2013-2-18
收藏
得分:3 
程序中 cout<<count<<item<<endl; 有输出count 所以会有1 2 3 4
读取完最后一个数据后 fin是真 fin.good()返回的是价所以没有第
四行数据 具体的你在查查资料
2013-02-19 00:43
sbmqj
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2008-4-11
收藏
得分:3 
学习了
2013-02-19 01:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:3 
楼主,你的代码跟谁学的?换个人吧,别学废了。cerr<<endl可以忍,冗余的getline也可以忍,但那个exit实在是……
回到你的问题 while(fin) 最终判断调用的 fail(),它和good()并不是完全互补的,起码还差个eof。
也就是,fail()不将eof当作fail,good()将eof当作非good

btw:
程序代码:
#include <iostream>
#include <fstream>
#include <string>

int main()
{
    using namespace std;

    ifstream fin( "name.txt" );
    if( !fin )
    {
        cerr << "cannot open\n";
        return 1;
    }

    int count = 1;
    for( string item; getline(fin,item); ++count )
    {
        cout << count << item << endl;
    }
    cout << "over gamme" << endl;
    fin.close();

    return 0;
}

2013-02-19 08:52
y605302737
Rank: 1
等 级:新手上路
帖 子:32
专家分:9
注 册:2013-2-2
收藏
得分:0 
回复 4楼 rjsp
弱弱的问一句:exit有什么问题 ,我是菜鸟!
2013-02-20 17:44
快速回复:.txt读取中的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017318 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved