字符串解析的问题

cuijixin 2012-03-05 05:42:23
大家好,请教大家一个基础的问题

我的文件里 记录的数据格式如下:
1 6.0 -11.5 19 90 1
2 -11.0 -18.5 25 -36 3
3 90.2 -17.0 17 3 2
4 -4.0 -15.0 13 54 1
5 0.0 -14.0 20 35 2
6 0.5 -11.5 19 37 3
7 -10.0 -19.0 21 -42 3
8 0.0 -23.0 5 -35 1
9 20.0 -22.0 8 -20 3
10 -100.0 -21.4 7 -15 1
11 -100.0 -21.5 15 -40 2
12 13.0 -17.2 18 2 2
13 -5.0 -18.5 15 18 1
14 10.0 -18.0 14 50 1
15 -8.0 -14.0 16 56 1
16 0.6 -13.0 26 21 3
17 -40.0 -20.0 22 -50 3

我现在将每一行数据读进一个string里,以空格分隔,将数据记录人vector,请教具体操作
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
面包大师 2012-03-06
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
FILE *stream;
char str1[16], str2[128];
memset(str1, 0, sizeof(str1));
memset(str2, 0, sizeof(str2));
vector<string> Vstring;
stream = fopen("Ain.txt", "r");
if(stream == NULL)
{
printf( "The file Ain.txt was not opened\n" );
return(0);
}
else
{
bool bFirst = true;
int i = 0;
while(!feof(stream))
{
fscanf(stream, "%s", str1);
i++;
if( i == 6)
{
str2[strlen(str2)] = ' ';
strcat(str2, str1);
Vstring.push_back(str2);
printf( "%s\n", str2);
bFirst = true;
memset(str2, 0, sizeof(str2));
i = 0;
}
else
{
if(bFirst)
{
strcat(str2, str1);
bFirst = false;
}
else
{
str2[strlen(str2)] = ' ';
strcat(str2, str1);
}
}
memset(str1, 0, sizeof(str1));
}
}
fclose(stream);
return(0);
}
程序员小迷 2012-03-06
  • 打赏
  • 举报
回复
将读进来的数据变成char *,
strtok
JoeBlackzqq 2012-03-05
  • 打赏
  • 举报
回复
sscanf(a,"%d %d %d %d %d",&b,&c,&d,&e,&f);
赵自行 2012-03-05
  • 打赏
  • 举报
回复
ifstream cin("文件名");
vector<double> v;
char a[100];
int b,c,d,e.f;
cin.getline(a,100,'\n');
sscanf(a,"%d %d %d %d %d",b,c,d,e,f);
v.push_back(b);
v.push_back(c);
v.push_back(d);
v.push_back(e);
v.push_back(f);

64,648

社区成员

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

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