C++:sscanf函数的用法
1、sscanf定义:int sscanf (const char *str, const char * format,........);函数说明:sscanf将str字符串以format格式进行转换,并将转换的结果存于对应的参数内。返回值:成功则返回参数数目;失败则返回-1;例如:sscanf(str,"%d%d%s", &i,&i2, &s);如果三个都读入成功,则返回3;如果只读入第一个整数到i则返回1。

3、用法二:格式:sscanf(stringBuf.c_str(), "%20[^#]#%20[^ ]",......)语句中,""中的内容含义为:“%[ ]”符号用于声明字符串,比“%s”更具体,可以用于设置读取的样式。例如“%[a-z]”只读取小写字母,读到其它字符就结束。注意,方括号中如果有“^”,代表一直读到某字符为止。例:“%[^#]”:读取字符串,一直到出现“#”号为止。“%20[^#]”:读取20个字节的字符串,出现“#”号时结束。所以,“%20[^#]#%20[^ ]”的意义就是:读取两个20字节大小的字符串,第一个字符串可以用#结束,第二个字符串可以用回车符结束。

5、应用四:名称:sscanf() - 从一个字符串中读进与指定格式相符的数据.语法:int sscanf( string str, string fmt, mixed var1, mixed var2 ... );用法:每一个%d、%s对应一个参数, 按顺序var1, var2 ...,%d读入一个整数到参数中, 而%s 读入一个字符串.*亦可用于格式中,即%*d 和%*s,加了星号 (*) 表示跳过此数据不读入。sscanf()返回符合格式的%d和%s总数;

7、示例:sscanf(user, "%127[^:]:%127[^ ]", user_name, password);其中:"%127[^:]:%127[^ ]",是正则表达式127表示最多可以接受127个字符,[^:]是正则表达式,表示非":",到":"结束%127[^ ],[^ ]是正则表达式,表示非" ",到" "结束所以,如果user是"wpc:123456"的字符串,那么经过上面的sscanf后,user_name是wpc,而password是123456。