Tất cả đều đọc một ký tự từ đầu vào và trả về giá trị nguyên. Giá trị EOF dùng để báo lỗi/kết thúc file.
getc()
Đọc một ký tự từ luồng (stream) chỉ định. Trả về EOF nếu thất bại.
Cú pháp
int getc(FILE *stream);
Ví dụ
#include <stdio.h>
int main() {
char val;
printf("Nhap ky tu: \n");
val = getc(stdin);
printf("Ky tu nhap: ");
putc(val, stdout);
return 0;
}
getchar()
Đọc ký tự từ đầu vào chuẩn (stdin). Tương đương getc(stdin).
Cú pháp
int getchar(void);
Ví dụ
#include <stdio.h>
int main() {
char val;
val = getchar();
printf("Nhap ky tu: \n");
printf("Ky tu nhap: %c", val);
return 0;
}
getch()
Hàm không chuẩn, khai báo trong <conio.h> (thường dùng Turbo C). Trả về ký tự ngay lập tức không chờ phím Enter và không hiển thị ký tự lên màn hình. Không thuộc thư viện chuẩn C.
Cú pháp
int getch(void);
getche()
Cũng không chuẩn, trong <conio.h>. Đọc ký tự, trả về ngay, không chờ Enter, nhưng hiển thị ký tự lên màn hình (echo).
Cú pháp
int getche(void);
Bảng so sánh
| Hàm | Chuẩn | Header | Chờ Enter | Hiển thị (echo) | Luồng vào |
|---|---|---|---|---|---|
| getc() | C89 | stdio.h | Có | Có | FILE* tùy chọn |
| getchar() | C89 | stdio.h | Có | Có | stdin |
| getch() | Không | conio.h | Không | Không | Bàn phím trực tiếp |
| getche() | Không | conio.h | Không | Có | Bàn phím trực tiếp |
Khuyến nghị: Chỉ dùng getc()/getchar() cho code chuẩn, đa nền tảng. Tránh conio.h.