逗号分隔的文本文件读入问题

LBJMD 2011-02-23 10:57:35
文本文件里的内容如下:1,X, Y, Z, R, S, T
2,X1,Y1,Z1,R1,S1,T1
以下所有行行都是与上面一样的格式。
其中X,Y,Z是double类型,R,S,T是int类型。

请问怎么把文本中的数据提取出来赋值到变量中。由于文本的行数比较多,是百万行级的,所以尽可能要快速的读入,请各位朋友指点一下,在此谢过了。
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiwcdj 2011-02-23
  • 打赏
  • 举报
回复
如果有逗号

#include <cstdio>

int main()
{
int a,b,c;
double d,e,f;
d=e=f=0.0;
FILE* pFile = fopen("yourfile","r");
if (pFile == NULL) perror ("Error opening file");
else
{
while (fscanf(pFile, "%d,%d,%d,%lf,%lf,%lf", &a,&b,&c,&d,&e,&f) != EOF)
printf("%d,%d,%d,%lf,%lf,%lf\n", a,b,c,d,e,f);

fclose (pFile);
}

return 0;
}

没有逗号

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in("yourfile");
if(!in) return 1;
int a,b,c;
a=b=c=0;
double d1,d2,d3;
d1=d2=d3=0.0;

while (in>>a>>b>>c>>d1>>d2>>d3)
{
cout<<a<<" "<<b<<" "<<c<<" "<<d1<<" "<<d2<<" "<<d3<<endl;
}

return 0;
}
無_1024 2011-02-23
  • 打赏
  • 举报
回复
呵呵 了解了 用格式化读入
LBJMD 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 justkk 的回复:]
fscanf(f,"%*d,%f,%f,%f,%d,%d,%d",&a,&b,&c,&d,&e,&g);
跳过第一列的序号
[/Quote]
哦,多谢。
justkk 2011-02-23
  • 打赏
  • 举报
回复
fscanf(f,"%*d,%f,%f,%f,%d,%d,%d",&a,&b,&c,&d,&e,&g);
跳过第一列的序号
LBJMD 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
[code=C]/C++
FILE* f = fopen("c:\\1.txt","r");
float a,b,c;
int d,e,g;
while (!feof(f))
{
fscanf(f,"%f,%f,%f,%d,%d,%d",&a,&b,&c,&d,&e,&g);
}
[/code]
[/Quote]
那请问我每行前面的序号,比如说1,2,3都没在fscanf中体现啊,就是格式上不对啊
bdmh 2011-02-23
  • 打赏
  • 举报
回复
[code=C]/C++
FILE* f = fopen("c:\\1.txt","r");
float a,b,c;
int d,e,g;
while (!feof(f))
{
fscanf(f,"%f,%f,%f,%d,%d,%d",&a,&b,&c,&d,&e,&g);
}
[/code]
heyeshangdeyidilu 2011-02-23
  • 打赏
  • 举报
回复
fin>>ch;

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧