1. 程式人生 > 實用技巧 >scanf是否有返回值

scanf是否有返回值

scanf函式返回成功讀入的資料項數,讀入資料時遇到了“檔案結束”則返回EOF。 如:
1 scanf("%d%d",&a,&b);
函式返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2; 如果只有a被成功讀入,返回值為1; 如果a和b都未被成功讀入,返回值為0; 如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。 例:使用scanf函式輸入資料。
1 2 3 4 5 6 7 8 9 #include<stdio.h> intmain(void) { inta,b,c; printf("Givemethevalueofa,b,cseperatedwithwhitespaces:\n"
); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); return0; }
&a,&b,&c中的&是定址操作符,&a表示物件a在記憶體中的地址[3],是一個右值。變數a,b,c的地址是在編譯階段分配的(儲存順序由編譯器決定)。 這裡注意:如果scanf中%d是連著寫的如“%d%d%d”,在輸入資料時,資料之間不可以用逗號分隔,只能用空白字元(空格或tab鍵或者回車鍵)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回車)4”等。若是“%d,%d,%d”,則在輸入資料時需要加“,”,如“2,3,4”。

格式指令說明