3 回答

TA貢獻1856條經驗 獲得超5個贊
1、空白符問題
#include<stdio.h>
main()
{
int a;
printf("input the data ");
scanf("%d ",&a);//這里多了一個回車符
printf("%d",a);
return 0;
}
2、回車符也占位。
#include <stdio.h>
main()
{
int n = 5;
char c[n];
for(int i = 0; i < n; i++)
c[i] = scanf("%c",&c[i]);
printf(c);
return 0;
}
3、scanf()函數的參數輸入類型不匹配問題
#include<stdio.h>
main()
{
int a=123;
char c='t';
printf("input ");
scanf("%d%c",&a,&c);
scanf("%d%c",&a,&c);
scanf("%d%c",&a,&c);
printf("%d %c ",a,c);
return 0;
}
擴展資料:
scanf函數用%s讀取一個字符串時,其實它只能讀取一個單詞,因為遇到空格時,它會認為輸入已結束。因此一般使用fgets來讀取一個字符串。如果想用scanf函數讀取帶有空格的字符串時,需要使用參數%[ ]來完成,它的意思是讀入一個字符集合。
[ ]是個集合的標志,%[ ]特指讀入此集合所限定的那些字符,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字符便停止。如果集合的第一個字符是“^”,這說明讀取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止(這就是scanf函數里的正則表達式應用)。
- 3 回答
- 0 關注
- 1169 瀏覽
添加回答
舉報