linqy的个人博客分享 http://blog.sciencenet.cn/u/linqy

博文

将文件中不同的内容进行分离存放在两个文件中

已有 1827 次阅读 2017-6-30 14:08 |个人分类:C++|系统分类:科研笔记| 数据分离

下面的代码是将一个文件中的字符和数字分离,并分别存在两个文件中


#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");

}



https://blog.sciencenet.cn/blog-3134052-1063818.html

上一篇:如何统计数组中的字符、数字、以及其他字符个数
下一篇:二进制文件的数据读取以及简单的数据处理操作
收藏 IP: 124.207.244.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-13 19:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部