輸入:scanf函數、getchar()函數、gets()函數。
輸出:printf函數、putchar()函數、puts()函數。
相互的區別和作用:(這裏只以輸入函數舉例)
一:scanf函數:
scanf可以用來輸入一個字符:scanf("%c",&a);
scanf可以用來輸入多個字符:scanf("%s",&a);
二:
getchar()函數:只能用於輸入一個字符:getchar(s);
三:gets()函數:用來輸入多個字符。
gets()函數用來從標準輸入設備(鍵盤)讀取字符串直到回車結束, 但回車符
不屬於這個字符串。其調用格式爲:
|
其中s爲字符串變量(字符串數組名或字符串指針)。
注意:gets(s)函數與scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)
函數輸入字符串時存在一個問題, 就是如果輸入了空格會認爲輸入字符串結束,
空格後的字符將作爲下一個輸入項處理, 但gets() 函數將接收輸入的整個字符
串直到回車爲止。
gets()函數總結:
(1)gets() 從標準輸入設備讀取字符串,以回車結束讀取,使用'\0'結尾,回車符'\n'被捨棄沒有遺留在緩衝區。
(2)可以用來輸入帶空格的字符串。
(3)可以無限讀取,不會判斷上限,因此使用gets不安全,可能會造成溢出
scanf()函數總結:
(1)scanf() 以 空格 或 回車符 結束讀取,空格 或 回車符 會遺留在緩衝區。
(2)不能直接輸入帶空格的字符串。