在C語言中,有多個函數可以從鍵盤獲得用戶輸入:
1.scanf("格式說明",變量地址列表)
scanf("%s",字符數組名或指針);
scanf("%c",字符變量地址);
scanf("%d",十進制整數變量地址);
scanf("%u",無符號十進制整數變量地址);
scanf("%o",八進制整數變量地址);
scanf("%x",十六進制整數變量地址);
scanf("%i",十進制、八進制、十六進制整數變量地址);
scanf("%e",浮點數變量地址);
scanf("%f",浮點數變量地址);
scanf("%[]",符合指定字符集合的字符指針);
scanf()可以接收多種格式的數據,遇到回車,tab,空格時,輸入結束,會自動在字符串后面添加'\0',但是回車,空格和tab鍵仍會留在輸入的緩沖區中。當連續兩次調用scanf時,會直接讀入上一次結束scanf時的回車符號“\n” (0x0a); 沒有將回車鍵屏蔽。
eg:
當輸入字符串中帶有空格時:
test space //輸入帶有空格的字符串 first input:test second input:space
2.gets(字符指針):可接受回車鍵之前輸入的所有字符,並用'\n'替代 '\0'.回車鍵不會留在輸入緩沖區中。
3.getchar():getchar的返回值是緩沖區的第一個字符的ASCII碼,如出錯返回-1。getchar從用戶鍵入回車開始讀緩沖區,用戶在鍵入回車之前輸入了不止一個字符,所有字符會保留在鍵盤緩存區中,getchar直到緩沖區中的字符讀完為后,才等待用戶按鍵。
4.getch():getch直接從鍵盤獲取字符,不等待用戶按回車。只要用戶按鍵,getch就立刻返回,getch返回值是鍵盤輸入的ASCII碼,出錯返回-1。
一般使用getchar讀取scanf語句執行后,緩沖區留下的換行符。