繁体   English   中英

如何在不按 ENTER 的情况下读取 C 中的数据?

[英]How could I read data in C without pressing ENTER?

我的一项作业有一点问题。 这是一个问题,如下所示:

使用 Switch 语句,编写一个读取值的程序,直到按下 ENTER 键。 如果按下字符“换行符”、“制表符”或“退格”,则 output 它们的名称。

这是我到目前为止所做的。

int main(){
    char x;
    x=getchar();
    while(x!='\r')
    {
        switch (x)
        {
        case '\t':
            printf("Tab!");
            break;
        case '\n':
            printf("Newline!");
            break;
        case '\b':
            printf("Backspace!");
            break;
            default: break;
        }
            x = getchar();
    }
    /* switch(x){
        case '\r': break;
        case '\t': printf("Tab!");
        case '\n': printf("Newline!");
        case '\b': printf("Backspace!");
        default: x=getch();
    } */

    return 0;
}

我的问题是,每次我使用getch()scanf()读取一个字符时,我都会按enter ,所以......程序并没有做太多。 您对我如何解决此问题有任何想法吗? 换行符也不是与 Enter 相同的键吗?

我在 Windows 10 和 VScode 中使用 MinGW64 作为 IDE。

从要求程序在获取一个字符后应该响应的要求中并不清楚。 可能不需要额外的工作,因为 output 是相同的,无论输入的行缓冲如何。

在 Linux 上,您可以将终端移动到“原始”模式(使用系统调用或使用stty )。 Windows 没有这样的实用程序。 如果必须,请查看: Get key press in windows 控制台

鉴于这是基本的 Unix 练习,我怀疑您需要执行上述操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM