免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: nbfan
打印 上一主题 下一主题

请教关于文件读写问题. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-03-06 11:52 |只看该作者

请教关于文件读写问题.

这个用sed很方便

  1. sed -i '/李德/s/1939/1940/' filename
复制代码


简易c++代码:
  1. #include <iostream>;
  2.   #include <fstream>;
  3.   #include <string>;
  4.    using namespace std;

  5.    void printUsage)
  6.    {
  7.      cout << "Usage: ./a.out <fileName>;  <keyWord>;
  8.                    <oldWord>; <newWord>;"
  9.              <<endl;
  10.    }

  11.    int
  12.    main(int argc,char **argv)
  13.    {
  14.         if(argc != 5)
  15.             printUsage(),exit(1);
  16.         fstream in(argv[1],ios::in | ios::out);
  17.         string record;
  18.         while(getline(in,record)) {
  19.              string key(argv[2]),old(argv[3]),new(argv[4]);
  20.              if (record.find(key,0) != string::npos) {
  21.                  size_type pos = record.find(old, 0);
  22.                  record.replace(pos, old.size(), new, 0, new.size());
  23.                  in.seekp(in.tellg() - record.size() - 1);
  24.                  in <<record << endl;
  25.                  break;
  26.              }
  27.          }
  28.      }
复制代码

论坛徽章:
0
12 [报告]
发表于 2005-03-06 17:39 |只看该作者

请教关于文件读写问题.

现在的问题就是,我要改其中一行,改好后直接重写这一行,但是我每次改写后,重写就写到文件最后了,如何操作能修改一行,然后覆盖这一行,别的不变?
谢谢

论坛徽章:
0
13 [报告]
发表于 2005-03-06 21:48 |只看该作者

请教关于文件读写问题.

9494,版主能不能写一点啊,谢谢

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
14 [报告]
发表于 2005-03-06 21:53 |只看该作者

请教关于文件读写问题.

原帖由 "nbfan" 发表:
现在的问题就是,我要改其中一行,改好后直接重写这一行,但是我每次改写后,重写就写到文件最后了,如何操作能修改一行,然后覆盖这一行,别的不变?
谢谢


不是说了嘛,重新建立一个文件啊。

  1. fopen(infile);
  2. fopen(outfile);
  3. while( fgets(infile) is not  the specified line) {
  4.       fputs(outfile);
  5. }
  6. // do some process to the specified line.
  7. fputs(outfile);
  8. while ( fgets(infile) is not reach the end of file) {
  9.       fputs(outfile);
  10. }
  11. fclose(infile);
  12. fclose(outfile);
复制代码

这样不就完了?

论坛徽章:
0
15 [报告]
发表于 2005-03-07 12:03 |只看该作者

请教关于文件读写问题.

实在不好意思,你写的东西我没看懂.

论坛徽章:
0
16 [报告]
发表于 2005-03-08 20:09 |只看该作者

请教关于文件读写问题.

够明了的了,你只要填自己需要处理的代码,就完整了:

建立一个新的输出文件,然后把源文件一行行输出就OK了(包括处理好的那一行数据),自己测试一把,水到渠成.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP