一、getchar()的用法
1.從緩沖區讀走一個字符,相當於清除緩沖區。
2.前面的scanf()在讀取輸入時會在緩沖區中留下一個字符’\n’(輸入完s[i]的值后按回車鍵所致),所以如果不在此加一個getchar()把這個回車符取走的話,gets()就不會等待從鍵盤鍵入字符,而是會直接取走這個“無用的”回車符,從而導致讀取有誤。
3.getchar()是在輸入緩沖區順序讀入一個字符(包括空格、回車和Tab)。
例如:
這里就是取走回車字符。
二、空格問題
c語言中輸出字符串的函數有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在內,無特殊處理, char str[]="hello world" ;printf("%s\n", str );puts(str);fputs(str,stdin);
但在輸入帶有空格的字符串時,只能用gets()或fgets(),而不能用scanf("%s") ,因為scanf("%s")輸入字符串時,遇到空格就結束了輸入。而gets()函數是以回車為結束符的輸入函數,可以輸入帶空格的字符串。