打开文件排序
时间:2011-12-26
来源:互联网
打开文件 info.txt
|姓名|性别|出生日期|电话|
|张三|男|1984-12-3|1322222222|
|张四|男|1982-5-3|1365222222|
|张五|女|1982-12-5|1362222222|
按年龄升序排序再写入文件
|姓名|性别|出生日期|电话|
|张三|男|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,很简单的
1.读入文件到一结构数组
可以读一行,然后用strtok写入每个成员变量
2.用标准函数qsort对结构数组进行排序
在比较函数中计算年龄,只是方法一,可以比较繁
另外的方法是对日期进行格式化处理,将1982-5-3格式成1982-05-03这样的格式
这样用直接用strcmp比较大小就可以了
3.将排序好的结构数组回写文件
这个直接可以fprintf,很简单的
作者: keiy 发布时间: 2011-12-26
给另外一个思路
记下行号,用strtok获取出生日期,作为一组数据
对出生日期排序,获得结果,比如楼主的例子,排序完后为:行2, 行4, 行3
按这个顺序读取源文件,将内容存到目的文件。
优点是不用耗很多内存,排序的时候只有一个行号跟着一起动,节省了memcpy的时间
缺点是有点烦,不太直观,还要对源文件遍历两次,一次排序,一次复制数据
记下行号,用strtok获取出生日期,作为一组数据
对出生日期排序,获得结果,比如楼主的例子,排序完后为:行2, 行4, 行3
按这个顺序读取源文件,将内容存到目的文件。
优点是不用耗很多内存,排序的时候只有一个行号跟着一起动,节省了memcpy的时间
缺点是有点烦,不太直观,还要对源文件遍历两次,一次排序,一次复制数据
作者: daviddb7 发布时间: 2011-12-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28