|||
下面的代码是将一个文件中的字符和数字分离,并分别存在两个文件中
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
void main()
{
char *f1path = "C:\Users\linqy\Desktop\test.dat";//文件的路径
char *f2path = "C:\Users\linqy\Desktop\chardat.dat";//文件的路径
char *f3path = "C:\Users\linqy\Desktop\figuredat.dat";//文件的路径
ifstream ifs(f1path,ios::in);//第二个参数为文件打开的方式。文件打开可以以多种方式,用 | 链接不同的方式
ofstream ofs2(f2path);
ofstream ofs3(f3path);
if (!ifs)
{//若文件打开失败,返回的值是 0
cerr<<"file1 open failed"<<endl;//cerr是将错误输出在屏幕上,
exit(1);//若文件打开失败,则退出
}
if (!ofs2)
{//若文件打开失败,返回的值是 0
cerr<<"file2 open failed"<<endl;//cerr是将错误输出在屏幕上,
exit(1);//若文件打开失败,则退出
}
if (!ofs3)
{//若文件打开失败,返回的值是 0
cerr<<"file3 open failed"<<endl;//cerr是将错误输出在屏幕上,
exit(1);//若文件打开失败,则退出
}
char ch;
float xx;
char *chs = new char;
while(ifs>>ch)
{
if (ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122)
{
ifs.putback(ch);//如果是字符的开始是字符串,则后退一步,回到字符的开始
ifs>>chs;
ofs2<<chs<<' '<<endl;
}
else if (ch >= 48 && ch <= 57 || ch == 46)
{
ifs.putback(ch);//
ifs>>xx;
ofs3<<xx<<' '<<endl;
}
}
ifs.close();//操作完成后,关闭ofs文件
ofs2.close();
ofs3.close();
cout<<"Action finished"<<endl;
system("pause");
}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 13:20
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社