Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khác biệt giữa getc(), getchar(), getch() và getche()

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àmChuẩnHeaderChờ EnterHiển thị (echo)Luồng vào
getc()C89stdio.hCóCóFILE* tùy chọn
getchar()C89stdio.hCóCóstdin
getch()Khôngconio.hKhôngKhôngBàn phím trực tiếp
getche()Khôngconio.hKhôngCó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.