📜  getc(),getchar(),getch()和getche()之间的区别(1)

📅  最后修改于: 2023-12-03 14:41:23.560000             🧑  作者: Mango

getc(),getchar(),getch()和getche()之间的区别

getc(), getchar(), getch(), 和 getche() 都是用于从标准输入设备(键盘)获取输入。但是它们之间有一些区别。

getchar()

getchar() 是C语言标准库中的一种输入函数,用于从标准输入设备(键盘)中获取一个字符,并返回其ASCII码。

int getchar(void);

返回值:获取到的字符的ASCII码,如果遇到文件结尾或错误则返回 EOF。

示例代码:

#include <stdio.h>

int main()
{
    char c;
    printf("请输入一个字符:");
    c = getchar();
    printf("您输入的字符是:%c\n",c);
    
    return 0;
}

该程序执行后,会等待用户在键盘上输入一个字符,然后将获取到的字符输出到屏幕上。

getc()

getc() 是C语言标准库中的一种输入函数,它和 getchar() 的作用类似,但是可以从任意文件中获取输入。获取到的字符并不一定是 ASCII 码,因为它取决于文件的编码方式。

int getc(FILE *stream);

返回值:获取到的字符,如果遇到文件结尾或错误则返回 EOF。

示例代码:

#include <stdio.h>

int main()
{
    FILE *fp;
    char c;

    fp = fopen("test.txt", "r");
    while ((c = getc(fp)) != EOF)
    {
        putchar(c);
    }
    fclose(fp);

    return 0;
}

该程序会打开一个名为 test.txt 的文件,并将文件中的所有字符读取并输出到屏幕上。

getch()

getch() 是Windows平台下的一个非标准输入函数,其功能和 getchar() 类似,但是不需要用户按下回车键,而是在用户输入字符的同时立即返回用户输入的字符。它通常用于游戏、控制台程序等需要读取单个字符的场景,但是不建议在生产环境中使用该函数。

int getch(void);

返回值:获取到的字符的ASCII码。

示例代码:

#include <stdio.h>
#include <conio.h>

int main()
{
    char c;
    printf("请输入一个字符:");
    c = getch();
    printf("\n您输入的字符是:%c\n", c);

    return 0;
}

该程序会等待用户在键盘上输入一个字符,然后将获取到的字符输出到屏幕上。

getche()

getche()getch() 的功能基本相同,但它会将用户输入的字符回显到屏幕上。

int getche(void);

返回值:获取到的字符的ASCII码。

示例代码:

#include <stdio.h>
#include <conio.h>

int main()
{
    char c;
    printf("请输入一个字符:");
    c = getche();
    printf("\n您输入的字符是:%c\n", c);

    return 0;
}

该程序会等待用户在键盘上输入一个字符,然后将获取到的字符输出到屏幕上,并在输入的字符后面加一个换行符。