| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3849 人关注过本帖
标题:ifstream怎么用啊,ofstream一学就会,可是ifstream没有输出和创建文件啊
只看楼主 加入收藏
tttt182
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2013-7-2
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:9 
ifstream怎么用啊,ofstream一学就会,可是ifstream没有输出和创建文件啊
rt,求解
2013-09-15 21:27
tttt182
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2013-7-2
收藏
得分:0 
#include"iostream"
#include"fstream"
using namespace std;
int main()
{
    int a;
    ifstream infile(C:\\123.txt);
    ifstream>>a;
    ifstream.close();
}
就像这样子,为什么没有输出,也没有创建文件呢
2013-09-15 21:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
你在银行中没存款,能拿到钱吗?

授人以渔,不授人以鱼。
2013-09-15 22:29
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:4 
我解释下,ifstream目的是为了从存储介质中读入内存的,ofstream是从内存输出到存储介质。
c:\\123.txt  如果这个文件不存在,ifstream对象的介质文件就为空,你希望一个空文件给你输出啥?
2013-09-16 07:31
tttt182
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2013-7-2
收藏
得分:0 
哦,原来如此,我明白了,谢谢
2013-09-16 23:39
tttt182
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2013-7-2
收藏
得分:0 
还有一个问题

#include"iostream"
#include"fstream"
using namespace std;
int main()
{
    char data;
    ifstream infile("C:\\456.txt");
    while(infile)
    {
        infile.get(data);
        cout.put(data);
    }
    cout<<endl;
    infile.close();
}
我的456.txt里是“Tomorrow is sunny”,为什么输出是“Tomorrow is sunnyy”?
2013-09-16 23:52
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:0 
我之前也遇过这个问题。

如果fin>>不能再读入数据了,才发现到了文件结尾,这时才给流设定文件结尾的标志,此后调用eof()时,才返回真.
假设
    find>>x; //此时文件刚好读完最后一个数据(将其保存在x中)
    但是,这时fin.eof()仍为假,因为 fin流的标志eofbit是False,fin流此时认为文件还没有到末尾,只有当流再次读写时 fin>>x ,发现已无可读写数据,此时流才知道到达了结尾,这时才将标志eofbit修改为True,此时流才知道文件到了末尾。
    也就是说,eof在读取完最后一个数据后,仍是False,当再次试图读一个数据时,由于发现没数据可读了,才知道到末尾了,此时才修改标志,eof变为True。

以上内容为网摘。
程序代码:
        char data;
    std::ifstream infile("D:\\456.txt");
    while (infile.peek() != EOF) {
        infile.get(data);
        std::cout.put(data);
    }
    std::cout<<endl;
    infile.close();
2013-09-17 05:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:4 
回复 6楼 tttt182
程序代码:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream infile("C:\\456.txt");

    for( char data; infile.get(data); )
    {
        cout.put( data );
    }
    cout << endl;

    infile.close();
    return 0;
}

2013-09-17 10:56
tttt182
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2013-7-2
收藏
得分:0 
谢谢各位的大力帮忙,c++真是博大精深啊,通过这个例子,我又学习了很多新东西,并且发现有更多的东西是我还没有学会的,以后要更努力一些才行啊,以后还要多多麻烦大家,争取早日达到大家这样的高度,更多的去帮助别人,说的有点多了,反正就这意思,谢谢。
2013-09-17 22:14
做个低调的人
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-9-27
收藏
得分:0 
不错
2013-09-27 14:02
快速回复:ifstream怎么用啊,ofstream一学就会,可是ifstream没有输出和创建文件 ...
数据加载中...
 
   



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

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