| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 346 人关注过本帖
标题:解释下这段代码,关于文件操作
只看楼主 加入收藏
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
解释下这段代码,关于文件操作
程序代码:
#include <iostream>
#include <fstream>
using namespace std;   //May-02_2012
void main()
{
    ifstream fin("data1.txt");
    ofstream fout("data2.txt");
    char ch; int valid=0;
    while (fin)
    {
        fin.get(ch);
        while (fin && ch==' ') { fin.get(ch); valid=1; }
        if (fin && valid)
        { fout.put(' '); valid=0; }
        fout.put(ch);
    }
    fin.close();
    fout.close();
}


条件判断有些看不明白,求高手
2012-06-09 16:07
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:10 
程序代码:
#include <iostream>
#include <fstream>
using namespace std;   //May-02_2012
void main()
{
    ifstream fin("data1.txt");    //打开输入文件
    ofstream fout("data2.txt");//打开输出文件
    char ch; //保存从输入文件中读取的字符
    int valid=0;//是否有一个或多个连续空格
    while (fin)
    {
        fin.get(ch);//从输入文件中读取一个字符
        while (fin && ch==' ') { fin.get(ch); valid=1; }//过滤输入文件中多余的空格
        if (fin && valid)
        { fout.put(' '); valid=0; }//如果输入文件中有多余的空格(也即有一个或多个连续空格)则用一个空格代替
        fout.put(ch);
    }
    fin.close();
    fout.close();
}


其实说白了这段代码就是过滤data1.txt文件中多余的空格并将内容保存到data2.txt文件中

努力改变一点点!!
2012-06-11 14:31
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:10 
我建议你将代码写为
程序代码:
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
    ifstream fin("data1.txt");
    ofstream fout("data2.txt");
    char ch; int valid=0;
    fin.get(ch);
    while (!fin.eof())
    {
        while (!fin.eof() && ch==' ')
        {
            fin.get(ch);
            valid=1;
        }
        if (!fin.eof() && valid)
        {
            fout.put(' ');
            valid=0;
        }
        fout.put(ch);
        fin.get(ch);
    }
    fin.close();
    fout.close();
}
比较好一点,至少易读。
你原来的程序是有问题的,会在文件最后多输出一个字符,我跟你纠正一下。

努力改变一点点!!
2012-06-11 14:48
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 2楼 zxwangyun
while (fin && ch==' ') { fin.get(ch); valid=1; }//过滤输入文件中多余的空格
怎么就是过滤多余的空格呢?
2012-06-12 13:47
心手2012
Rank: 2
等 级:论坛游民
帖 子:41
专家分:14
注 册:2012-3-15
收藏
得分:0 
回复 3楼 zxwangyun
  搞懂了 3Q
2012-06-12 13:53
快速回复:解释下这段代码,关于文件操作
数据加载中...
 
   



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

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