注册 登录
编程论坛 VC++/MFC

设计一个数据文件处理程序,求解,急,在线等

n160801426 发布于 2018-12-27 14:29, 2269 次点击
源数据文件中含有字符和数字,从中读取数值数据(将连续的数字字符看成一个数值数据),和读取的单词(将连续的字母字符看成一个单词)分别存放在不同的文件中,并且排序后输出显示。
例如:源数据文件old.dat包括:asjjk 12rtr 345 dasdd9&k32*dfasfkjk##dasfdf897,
则生成的数据文件new1.data包括:12  345  9  32  897
单词文件new2.dat包括:asjjk  rtr  dasdd   k  dfasfkjk  dasfdf

3 回复
#2
lyb6612019-01-03 13:18
///看看这个怎么样?
#include <iostream>
#include<fstream>
#include<string>
using namespace std;

ifstream is;
ofstream os1,os2;

int main()
{
    char ch;
    int n;
    string word;
    is.open("in.txt");

    os1.open("out1.txt");
    os2.open("out2.txt");

    while(is.get(ch))
    {
        if(isdigit(ch)){
            is.putback(ch);
            is>>n;
            os1<<n<<" ";

        }
        else if(isalpha(ch)){
               word=ch;
                while(is.get(ch)&&isalpha(ch))
                word+=ch;
                os2<<word<<" ";
            }
    }
    is.close();os1.close(); os2.close();

    return 0;
}

运行结果有点出入:
out1: 12 345 2 97

out2: asjjk rtr dasdd k dfasfkjk dasfdf
#3
lyb6612019-01-03 13:20
不知怎么丢了两个数字?
如果把输出字符或字符串的部分注释掉,则out1输出正好令人满意!
#4
levelworm2019-02-27 21:47
以下是引用lyb661在2019-1-3 13:20:44的发言:

不知怎么丢了两个数字?
如果把输出字符或字符串的部分注释掉,则out1输出正好令人满意!


输出字符串的部分是不是要往前peek一个ch?感觉多走了一个所以每次字符之后紧跟的数字就吃掉了。
1