int sscanf(const char* str, const char* format, ...)functions: Reads data from
str and stores them according to the parameter
format into the locations given by the additional arguments. Locations pointed by each additional argument are filled with their corresponding type of value specified in the
format string.
In the format:
Whitespace character: the function will read and ignore any whitespace characters which are encounterd before the next non-whitespace character.
Non-whitespace character: except percentage signs(%): any character that is not either a whitespace character or part of a format specifier causes the function to read the next character from str, compare it to this non-whitespace character and if it matches, it is discarded and the function continues with the next character of format and str. If the character does not match, the function fails and returns.
Return Value: On success. the function returns the number of items successfully read.
On failure: In the case of an input failure before any data could be successfully read, EOF is returnded.
//默認(rèn)以空格分隔str為不同字符串,返回正確輸入的變量個(gè)數(shù)

char buf1[512] =
{0};
cout << sscanf("abc def gh","%s",buf1) <<endl; //1
cout << buf1 << endl; //abc
//可以使多個(gè)一起存入

char buf2[512] =
{0};

char buf3[512] =
{0};
cout << sscanf("abc 2def gh","%s%s",buf2,buf3) <<endl; //2
cout << buf2 << endl; //abc
cout << buf3 << endl;//2def
//空格或format格式以外的字符如果匹配則與前一個(gè)字符串一起輸入,否則停止,退出

char buf4[512] =
{0};

char buf5[512] =
{0};
cout << sscanf("abc 2def gh","%s,%s",buf4,buf5) <<endl; //1
cout << buf4 << endl; //abc
cout << buf5 << endl; //nothing


char buf6[512] =
{0};

char buf7[512] =
{0};
//注意兩個(gè)%s之間的空格不可少
sscanf("abc 2def gh","%s 2%s",buf6,buf7);
cout << buf6 << endl; //abc
cout << buf7 << endl; //def
//當(dāng)然不只是字符串形式的,其他也都可以

char buf8[512] =
{0};
int a;
cout << sscanf("abc 2def gh","%*s %d",&a) <<endl;//1
cout << a << endl;//2
//Failure
int b;
cout << sscanf("abc","%d",&b) <<endl; //0