开发者社区 问答 正文

一个关于只读取一行首字符的C程序的问题

#include <stdio.h>
void main (){
    char ch;
    while ((ch=getchar())!='#'){
        if ('\n'==ch)
            continue;
        switch(ch){
            case 'a':
                printf ("a\n");
                break;
            case 'b':
                printf ("b\n");
                break;
            case 'c':
                printf ("c\n");
                break;
            case 'd':
                printf ("d\n");
                break;
            default:
                break;
        }
        while (getchar() != '\n')
            continue;
        printf ("Please type a/b/c/c/d\n");
    }
}

这段代码是在书上看到的,请问它是如何实现输入一行字符只读取首个字符。输入bcd,也只会打印b出来。

展开
收起
a123456678 2016-06-06 11:50:28 1959 分享 版权
1 条回答
写回答
取消 提交回答
  • 第二个while循环里面的getchar()吃掉了后面的字符。

    // ...
    int ch2;
    while ((ch2 = getchar()) != '\n') {
        printf("%c ", ch2);
        continue;
    }
    2019-07-17 19:28:08
    赞同 展开评论
问答分类:
问答地址: