【示常式序】
#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