您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
嵌入式學(xué)習(xí)筆記--scanf使用常見問題及解決方法
來源: 日期:2013-12-12 11:14:52 人氣:標(biāo)簽:
第一,連續(xù)輸入兩個(gè)或多個(gè)字符的時(shí)候,第二次輸入直接跳過了如:
int main()
{
char a,b;
scanf(“%c”,&a);
scanf(“%c”,&b);
return 0;
}
輸入 a回車 然后就退出了。
這個(gè)問題有很多說法有說是緩沖區(qū)沒有清除,有說stdin這個(gè)流的問題,這里我們不去追究,這里介紹幾個(gè)解決這種問題的方法:
int main()
{
char a,b;
scanf(“n%c”,&a);
scanf(“n%c”,&b);或 scanf(“ %c”,&b);%c前有空格
return 0;
}
這次再編譯一下就沒有問題了。
第二,使用scanf()函數(shù)輸入一句話的時(shí)候,如:
int main()
{
char string[50] ;
scanf(“%s”,string);
printf(“%sn”,string);
return 0;
}
輸入:hello world!
結(jié)果:hello
顯然這個(gè)結(jié)果沒有達(dá)到我們的要求。
解決方法:
int main()
{
char string[50] ;
scanf(“%[^n]”,string);
printf(“%sn”,string);
return 0;
}
【看看這篇文章在百度的收錄情況】