C++从字符串里读取部分内容的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:03:53
比方有个char数组,它的值是:
...
aaa:10\n
bbb:20\n
ccc:30\n
...

每一行表示一项的数值,行数是不确定的,但是类似bbb这样的提示是唯一的,现在我怎么把bbb:20中的值20读到char bbb[3]里面?

方法1:用字符串流:
//---------------------------------------------------------------------------
#include <sstream>
#include <iostream>
#include <string>

int main(void)
{
std::stringstream a;
std::string at;
char ch[3];/*用于保存读取到的数字字符*/
char cstr[][10]={"aaa:10\n","bbb:20\n","ccc:30\n"};
for (int i=0; i!=3; i++) {
a.str(cstr[i]);
a.ignore(10,':'); /*前面的字符与后面的数字用冒号分隔,前面的字符最多10个*/
a>>ch>>"\n"; /*将数字输出到ch字符数组中,数字后面是一个'\n'*/
a.clear();
std::cout<<ch<<std::endl; /*输出ch字符数组中的数字字符*/
}

return 0;
}
//---------------------------------------------------------------------------

方法2.用C语言函数sscanf
//---------------------------------------------------------------------------
#include <cstdio>

using namespace std;