+ -
当前位置:首页 → 问答吧 → 打开文件排序

打开文件排序

时间:2011-12-26

来源:互联网

打开文件 info.txt

|姓名|性别|出生日期|电话|
|张三|男|1984-12-3|1322222222|
|张四|男|1982-5-3|1365222222|
|张五|女|1982-12-5|1362222222|



按年龄升序排序再写入文件

作者: zhubaotian   发布时间: 2011-12-26

提供一个思路
1.读入文件到一结构数组
  可以读一行,然后用strtok写入每个成员变量
2.用标准函数qsort对结构数组进行排序
  在比较函数中计算年龄,只是方法一,可以比较繁
  另外的方法是对日期进行格式化处理,将1982-5-3格式成1982-05-03这样的格式
  这样用直接用strcmp比较大小就可以了
3.将排序好的结构数组回写文件
  这个直接可以fprintf,很简单的


作者: keiy   发布时间: 2011-12-26

给另外一个思路
记下行号,用strtok获取出生日期,作为一组数据
对出生日期排序,获得结果,比如楼主的例子,排序完后为:行2, 行4, 行3

按这个顺序读取源文件,将内容存到目的文件。

优点是不用耗很多内存,排序的时候只有一个行号跟着一起动,节省了memcpy的时间
缺点是有点烦,不太直观,还要对源文件遍历两次,一次排序,一次复制数据

作者: daviddb7   发布时间: 2011-12-26