首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C 語言非格式化 I/O:puts/gets、putchar/getchar/getch/getche 完全對比

     編輯:C 語言基礎

字符串級:puts / gets

  • `puts(s)`:輸出字符串並**自動換行**,等價 `printf("%s\n", s)`。不能格式化數值。
  • `gets(s)`:讀取一行(含空格)直到換行,**不保存換行符**。比 `scanf("%s")` 能讀含空格字符串。
    **警告**:`gets` 無長度限制,極易緩衝區溢出,**C11 已移除**,實際開發用 `fgets(s, n, stdin)` 替代。

字符級:putchar / getchar / getch / getche

函數回顯等待回車歸屬典型用途
putchar(ch)——標準 C輸出單字符
getchar()是是標準 C讀一行,取首字符
getch()否否conio.h (DOS/Windows)無回顯讀鍵、暫停
getche()是否conio.h即時回顯讀鍵

代碼示例

// 暫停等待任意鍵
printf("Press any key..."); getch();

// 讀一行取首字符
c = getchar(); putchar(c); getch(); // 第二個 getch 吃掉換行

總結

  • 標準 C 僅有 `putchar`/`getchar`,跨平台可移植。
  • `getch`/`getche` 為舊式 DOS/Windows 控制台專用,現代開發建議用平台無關庫(ncurses、SDL、Qt 等)。
  • `gets` **禁用**,改用 `fgets` 指定緩衝區大小。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved