-
scanf與gets函數共同點
- 二者都是從終端讀取字元串
而差別是
- gets功能為讀入一行,并将換行符轉換為字元串結束符。
- scanf("%s",s);讀入時,遇到空白字元,包括空格,制表符,換行符時均會停止輸入。
-
終止條件不同。gets隻有遇到\n時才會結束輸入,而scanf遇到空格或制表符時,也會結束輸入。
比如輸入"test string\n"。
用gets得到的字元串為"test string", 二用scanf得到的是"test"。
-
終止後,對終止字元處理不同。
比如輸入為"test\nabcd"。
執行gets後,\n不會留在緩沖區中,即這時調用getchar得到的字元是'a'。
執行scanf後,\n會留在緩沖區,這時調用getchar得到的字元是'\n'。