字符串解析的问题
大家好,请教大家一个基础的问题
我的文件里 记录的数据格式如下:
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,请教具体操作
[解决办法]
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);
[解决办法]
sscanf(a,"%d %d %d %d %d",&b,&c,&d,&e,&f);
[解决办法]
#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);}
[解决办法]
将读进来的数据变成char *,
strtok