免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8547 | 回复: 10
打印 上一主题 下一主题

[C] C读取txt文件里的数据,请大侠帮忙!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-03-25 18:01 |只看该作者 |倒序浏览
我有个函数,需要用到TXT里的数据,文件内容“某某:78”每一行都i这样,一共30多行,我只想读取每行的数据,然后赋值给函数中的设定数进行计算,请大侠们给小弟一个实例。跪求了

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2013-03-25 18:06 |只看该作者
读文件都不会还写毛的C啊, 问题很可笑啊.

你要是问txt文件很大, 你想指定读某一行, 我觉得这个还有点技术含量, 比如在内存里做索引, 索引dump到磁盘序列化或者直接上B树.

论坛徽章:
0
3 [报告]
发表于 2013-03-25 18:12 |只看该作者
小弟刚一接触啊,但是现在确实需要用到了,所以请各位大侠帮帮忙

论坛徽章:
0
4 [报告]
发表于 2013-03-25 18:12 |只看该作者
每一行都i这样
=》这是什么意思?  楼主的意思应该是“每一行都像这样”?

论坛徽章:
0
5 [报告]
发表于 2013-03-25 18:17 |只看该作者
是的,就会每行都有文字“某某某:789”等,文字不等,数字也不等,我只要读取数字,进行运算。

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
6 [报告]
发表于 2013-03-25 18:20 |只看该作者
linux_c_py_php 发表于 2013-03-25 18:06
读文件都不会还写毛的C啊, 问题很可笑啊.

你要是问txt文件很大, 你想指定读某一行, 我觉得这个还有点技术 ...

读指定一行只能数'\n'吧..数'\n'也只能把一段东西读到内存一个一个判\n...
感觉用不上你说的这些啊....


写着写着知道了,虽然基本都是这样,但不能每次都这样做,对于大文件比较慢(类似vim里的XXXXG)..
估计打开大文件比较慢都是在做这些个任务.

论坛徽章:
0
7 [报告]
发表于 2013-03-25 19:33 |只看该作者
  1. #include <string.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. void tst_fun(int val)
  5. {
  6.       printf("%d\n",val);
  7. }
  8. int main(int argc, char** argv)
  9. {
  10.      FILE* pf = fopen("e:\\a.txt","rb");
  11.         if(pf == NULL)
  12.         {
  13.                 //err_handle();
  14.                 return (1);
  15.         }
  16.         const int BUFFLEN=200;
  17.         char buffer[BUFFLEN];
  18.         while(!feof(pf)) //判断是否到了文件末尾
  19.         {
  20.                 //读取一行文件内容
  21.                 fgets(buffer,BUFFLEN,pf);
  22.                 //handle stream
  23.                 char* pindex = strstr(buffer,":");
  24.                 if(pindex == NULL)
  25.                 {
  26.                         continue;
  27.                 }else
  28.                 {
  29.                         pindex+=1;
  30.                 }
  31.                 int iVal = atoi(pindex);
  32.                 //call function
  33.                 tst_fun(iVal);
  34.         }
  35.         fclose(pf);
  36.         return 0;

  37. }
复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
8 [报告]
发表于 2013-03-25 21:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2013-03-25 21:18 |只看该作者
回复 8# pmerofc

能否告诉正确的应该怎么写?


   

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
10 [报告]
发表于 2013-03-25 21:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP