功不唐捐2080 发表于 2020-2-17 14:31:22

VS2019循环语句后的printf丢失首个字符求助

#include <stdio.h>

void main()
{
        int i = 0;
        char c;
        for (;;)
        {
                c = '\0';
                while (c!=13&&c!=27)
                {
                        c = getch();
                        printf("%c\n",c);
                }
                if (c==27)
                {
                        break;
                }
                i++;
                printf("The No. is %d\n", i);
        }
        printf("112233");
}

照着小甲鱼视频里的打出来的
最后的112233显示为12233 其他字符也一样 都是首字符被吞
我觉得这段代码没有问题 想求助下各位大神这是怎么回事
另:在vs2019中 使用getch()命令时 不加头文件反而不会报错 加上conio.h后会出现如下报错信息:

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'getch': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getch. See online help for details.        goto        C:\Users\广污大师\source\repos\goto\源.c        12       
求解惑 抱拳辣铁子

人造人 发表于 2020-2-17 14:44:25

if (c==27)

27是esc
esc在shell下有特殊的用法

https://blog.csdn.net/lano2088/article/details/51985563

功不唐捐2080 发表于 2020-2-17 14:57:34

{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}
大佬,能说得更萌新一点吗,萌新看不懂……
{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}
页: [1]
查看完整版本: VS2019循环语句后的printf丢失首个字符求助