scanf是否有返回值
阿新 • • 發佈:2020-11-29
scanf函式返回成功讀入的資料項數,讀入資料時遇到了“檔案結束”則返回EOF。
如:
函式返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為EOF。end of file為Ctrl+z 或者Ctrl+d。
例:使用scanf函式輸入資料。
&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”。
1 |
scanf ( "%d%d" ,&a,&b);
|
1 2 3 4 5 6 7 8 9 |
#include<stdio.h>
int main( void )
{
int a,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);
return 0;
}
|