| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1225 人关注过本帖
标题:各位大佬,请教一下getch函数的问题
只看楼主 加入收藏
cwhEd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:17
注 册:2018-8-14
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
各位大佬,请教一下getch函数的问题
比如下面这一段代码,第一次输入完以后就直接结束进程,用vs调试以后发现,当循环进行到第二次时,str1直接被赋值为'\0',但是若在输入完以后就直接清空缓冲区第二次输入仍然可以正常进行,但是getch又是一个没有缓冲区的函数,跪求大佬帮我解释解释
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#pragma warning (disable:4996)
int main() {
    char str1=0;
while(str1=getch()){
    if (str1 == '\r')
        break;
    printf("%c", str1);
    }
system("pause");
return 0;
}
搜索更多相关主题的帖子: getch 函数 输入 缓冲区 include 
2018-11-01 12:56
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:77
专家分:549
注 册:2013-5-19
收藏
得分:20 
程序代码:
/*

 * https://docs.

 *

 *

 */
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main(void)

{
    int ch1, ch2;

#if defined _UNICODE || defined _MBCS
    printf("Unicode环境,所以一个按键产生2个字符\n");
#endif

    do {
        ch1 = _getch();
        ch2 = _getch();

        printf("key %#x, %#x  ", ch1, ch2);

        if (ch1 == 0XE0) {
            printf("Press a control key %d\n", ch2);
        }
        else {
            printf("Press %c\n", ch1);
        }

    } while (ch1 != '\r');


    system("pause");
    return 0;
}
2018-11-02 13:50
快速回复:各位大佬,请教一下getch函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023515 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved