【示例程序】
#include <stdio.h>
void test(char *str)
{
int d, n, r;
r = sscanf(str, "%d%n", &d, &n); // %n表示上一个操作所消耗的字符数
printf("%s: 返回值=%d, 读取的值=%d, 读取的字符数=%d\n", str, r, d, n);
}
int main(void)
{
test("15");
test(" 38 27");
test("简体中文");
test("ABCDE");
test("45.9");
test("You are a dog.");
test("");
test(".");
//test(NULL); // 程序出错
return 0;
}
【运行结果】
15: 返回值=1, 读取的值=15, 读取的字符数=2
38 27: 返回值=1, 读取的值=38, 读取的字符数=7
简体中文: 返回值=0, 读取的值=-858993460, 读取的字符数=-858993460
ABCDE: 返回值=0, 读取的值=-858993460, 读取的字符数=-858993460
45.9: 返回值=1, 读取的值=45, 读取的字符数=2
You are a dog.: 返回值=0, 读取的值=-858993460, 读取的字符数=-858993460
: 返回值=-1, 读取的值=-858993460, 读取的字符数=-858993460
.: 返回值=0, 读取的值=-858993460, 读取的字符数=-858993460