标题:这个题目怎么优化?谢谢啦。
只看楼主
Theblueman
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2018-3-11
结帖率:60%
 问题点数:0 回复次数:2 
这个题目怎么优化?谢谢啦。
题目:编写程序,定义文件流对象,将当前C++源程序作为读入文件,区分其中的字母和和其他字符,再分别写入两文件,再分别将文件中的信息显示在屏幕上。
程序代码:
amespace std;
const int SIZE=80;
int SUM=0;
int main()    {
    vector<char> Buffer1,Buffer2;
    int i; 
    ifstream in("cout.cpp");
    in.seekg(0,in.end);
    int length=in.tellg();            //源文件大小
    in.seekg(0,in.beg);

    char* buffer;
    buffer=new char[length];
    in.read(buffer,length);
    
    for(i=0;i<length;i++)    {
        
        if(buffer[i]>='A'&&buffer[i]<='Z'||buffer[i]>='a'&&buffer[i]<='z')    {//数据分类
            SUM++;
            Buffer1.push_back(buffer[i]);
        }
        else Buffer2.push_back(buffer[i]);

    }
    delete[]buffer;

    ofstream out1("1.txt"),out2("2.txt");
    cout<<"1.txt:"<<'\n';
    for(i=0;i<SUM;i++){//写入文件1并输出
    out1.put(Buffer1[i]);
    cout<<Buffer1[i];
    }
    cout<<'\n'<<"2.txt:"<<endl;

    for(i=0;i<length-SUM;i++){//写入文件2并输出
    out2.put(Buffer2[i]);
    cout<<Buffer2[i];
    }

    ofstream ou1("1.txt"),ou2("2.txt");
    
    in.close();//关闭文件
    ou1.close();
    ou2.close();

    return 0;
}

搜索更多相关主题的帖子: 文件 int buffer cout txt 
2018-05-24 13:25
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:0 
可以用 istringstream 优化
建议详细查询其用法, 和 cin cout 差不多
另外建议存入 string 而不是 vector
2018-05-24 23:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
你所谓的“优化”是指哪方面?执行效率 还是 可读性?

程序代码:
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

int main( void )
{
    ifstream file_a( "cout.cpp", ios_base::binary );
    ofstream file_b( "1.txt", ios_base::binary );
    ofstream file_c( "2.txt", ios_base::binary );

    typedef istreambuf_iterator<char> FileItor;
    for( FileItor itor=FileItor(file_a); itor!=FileItor(); ++itor )
        (isalpha(*itor) ? file_b : file_c).put( *itor );
}

2018-05-25 09:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-487228-1-1.html




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

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