scanf是從標准輸入讀取數據的
假設現在標准輸入中的數據是123456
int a;
而我scanf("%d",&a);
會把123456轉化為數字然后存入到a中。
如果標准輸入中的數據是123?456
而我scanf("%d?",&a)
會把123轉化為數字存儲在a中。
scanf通常有個格式符號,要么是逗號 要么是空格 ,是因為標准輸入的數據是連續的數據,你沒法直到哪里到哪里是程序需要的數據,一定要有一個標志,有了標志字符,程序讀到那里就直到標志字符之前的東西就是程序要的數據。
假設標准輸入的數據是123hello\n
scanf("%s",string);
想一想,程序是怎么認定用戶輸入了一個字符串了,用戶輸入完畢之后按下回車之后就表明用戶把一個字符串輸入完畢了,同時回車字符也被存放到標准輸入中,只要檢測標准輸入中的\n字符就明白\n之前的字符就是字符串數據了。
如果寫一個檢測標准輸入中有幾個單詞,那么一定是通過檢測空格實現的。