第6题:设计一个数据文件处理程序
源数据文件中含有字符和数字,从中读取数值数据(将连续的数字字符看成一个数值数据),和读取的单词(将连续的字母字符看成一个单词)分别存放在不同的文件中,并且排序后输出显示。
例如:源数据文件old.dat包括:asjjk 12rtr 345 dasdd9&k32*dfasfkjk##dasfdf897,
则生成的数据文件new1.data包括:12 345 9 32 897
单词文件new2.dat包括:asjjk rtr dasdd k dfasfkjk dasfdf
根本不用面向对象
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream fin;
fin.open("old.dat");
ofstream fout1;
ofstream fout2;
fout1.open("new1.dat");
fout2.open("new2.dat");
string temp;
string word;
string nums;
while (getline(fin, temp)) {
int length = temp.length();
for (int i = 0; i < length; i++) {
word.clear();
nums.clear();
while (isalpha(temp[i])) {
word += temp[i++];
}
while (isalnum(temp[i]) && !isalpha(temp[i])) {
nums += temp[i++];
}
if (word.length())
fout2 << word << " ";
if (nums.length())
fout1 << nums << " ";
}
}
fout1.close();
fout2.close();
fin.close();
return 1;
}