免费注册 查看新帖 |

Chinaunix

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

[C++] 用fsanf()如何读取一行中的多个数据?(一行数据有1000多个) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-20 23:37 |只看该作者 |倒序浏览
用fsanf()如何读取一行中的多个数据?(一行数据有1000多个)该怎么写格式化参数?

我从txt文件中读取数据,由于每行数据有1000多个,多以不知道该如何写格式化参数。请高手帮忙,谢谢。
例如:如果每行有两个参数,那么我可以这样写,fscanf(fp,"%d,%d",&a,&b),
那么有很多数据的化要定义一千多个变量?
fscanf(fp,"%d,%d........",&a,&b..........),
请问有什么简单方法?


我的每行部分数据格式时这样的,如何读取其中的数据(落去前面的路径)?

c:\face\FIL5384.JPG        1368        1286        74        214        242        154        61        222        255        188        45        53        50        42        53        47        63        44        42        37        92        82        42        35        52        117        19        69        103        164        19        17        206        103        64        58        13        36        37        41        14        33        54        44        42        33        71        58        42        50        153        64        238        242        192        59        225        220        5683        1261        1062        117        170        308        156        65        185        282        175        76        64        57        26        49        51        57        67        74        58        83        171        42        27        79        150        42        77        185        290        22        42        259        139        48        84        7        60        31        ............................................(后面还有好多)

[ 本帖最后由 lihongsheng0217 于 2008-7-20 23:49 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-07-20 23:41 |只看该作者
man perl

论坛徽章:
0
3 [报告]
发表于 2008-07-20 23:50 |只看该作者
啥意思?不要打击人吗,虽然菜了点....

论坛徽章:
0
4 [报告]
发表于 2008-07-21 00:02 |只看该作者
用循环

论坛徽章:
0
5 [报告]
发表于 2008-07-21 00:20 |只看该作者

c++有时候还是很好用的。


  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <iterator>

  5. using namespace std;

  6. int main( int argc, char **argv )
  7. {
  8.         vector<int> v;
  9.         ifstream in("1.txt");
  10.         if (in) {
  11.                 copy(istream_iterator<int>(in), istream_iterator<int>(), back_inserter(v));
  12.                 copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
  13.                 /*
  14.                 for (int i = 0; i < v.size(); i++) {
  15.                         cout << v[i] << " ";
  16.                 }
  17.                 */
  18.         }
  19.     return 0;
  20. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2008-07-21 00:26 |只看该作者

回复 #5 jigloo 的帖子

谢谢你,如果用fscanf()该如何写?还有要略掉开始的路径字符串

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2008-07-21 00:29 |只看该作者
楼主为什么一定要用 C 语言?
是为了学习还是为了工作?
如果是为了学习,就自己去琢磨,别来问人。
如果是为了工作,那么原始需求是什么?
man awk
man perl

论坛徽章:
0
8 [报告]
发表于 2008-07-21 00:34 |只看该作者
跳过文件名只要在copy前面加上while (!isspace(in.get()));就可以了。
至于用fscanf怎么做,呃,我是看你的标题是[C++] 我才进来的。

论坛徽章:
0
9 [报告]
发表于 2008-07-21 12:28 |只看该作者
可以用整数数组, 然后用for或者while循环就可以了
例如定义一个1000的数组 int s[1000];
for(i=0;i<1000;i++)
   fscanf("%d",&s);
不是整数部分自己定义其它类型就可以了。

论坛徽章:
0
10 [报告]
发表于 2008-07-21 14:08 |只看该作者
原帖由 yleagle 于 2008-7-21 12:28 发表
可以用整数数组, 然后用for或者while循环就可以了
例如定义一个1000的数组 int s[1000];
for(i=0;i

小哥,错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP