C++读取文件一行字符串,然后分解
本帖最后由 isneu 于 2012-11-26 15:10:56 编辑 文件每行如下:
2 "Anthony van Raan" 9
把第一列存入到整数中,中间存入到字符串数组中,最后存入到一个整数中
ifstream fin("data.txt");
string s;
getline(fin,s);
之后如何将s分开
[解决办法]
三个列是以空格分开的话, 用strtok
[解决办法]
用strtok
[解决办法]
static int a[1000],c[1000];
static char b[1000][100];
sscanf(s,"%d "%[^"]" %d",&a[i],b[i],&c[i]);
i++;
# include <iostream>
# include <sstream>
using namespace std;
int main()
{
string s = "2 "Anthony van Raan" 9";
const char * digits = "0123456789";
string::iterator it1 = s.begin();
string::iterator it2 = s.begin() + s.find_first_not_of(digits);
string::iterator it3 = s.begin() + s.find_last_not_of(digits) + 1;
string::iterator it4 = s.end();
string s1(it1, it2);
string s2(it2, it3);
string s3(it3, it4);
int first, last;
char str[BUFSIZ];
stringstream(s1) >> first;
strcpy(str, s2.c_str());
stringstream(s3) >> last;
cout << first << endl
<< str << endl
<< last << endl;
return 0;
}