c語言輸入中的空格與換行問題


一、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()函數是以回車為結束符的輸入函數,可以輸入帶空格的字符串。

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM