字符數據的輸入輸出

輸入:scanf函數、getchar()函數、gets()函數。

輸出:printf函數、putchar()函數、puts()函數。

相互的區別和作用:(這裏只以輸入函數舉例)

一:scanf函數:

scanf可以用來輸入一個字符:scanf("%c",&a);

scanf可以用來輸入多個字符:scanf("%s",&a);

二:
getchar()函數:只能用於輸入一個字符:getchar(s);

三:gets()函數:用來輸入多個字符。

gets()函數用來從標準輸入設備(鍵盤)讀取字符串直到回車結束, 但回車符

不屬於這個字符串。其調用格式爲:

gets(s);

       其中s爲字符串變量(字符串數組名或字符串指針)。

注意:gets(s)函數與scanf("%s", s)相似, 但不完全相同, 使用scanf("%s", s)

函數輸入字符串時存在一個問題, 就是如果輸入了空格會認爲輸入字符串結束,

空格後的字符將作爲下一個輸入項處理, 但gets() 函數將接收輸入的整個字符

串直到回車爲止。

gets()函數總結:

(1)gets() 從標準輸入設備讀取字符串,以回車結束讀取,使用'\0'結尾,回車符'\n'被捨棄沒有遺留在緩衝區。

 

(2)可以用來輸入帶空格的字符串。

 

(3)可以無限讀取,不會判斷上限,因此使用gets不安全,可能會造成溢出

scanf()函數總結:

(1)scanf() 以 空格 或 回車符 結束讀取,空格 或 回車符 會遺留在緩衝區。

(2)不能直接輸入帶空格的字符串。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章