【问题标题】:Why getchar() is taking only one input为什么 getchar() 只接受一个输入
【发布时间】:2021-05-24 16:51:32
【问题描述】:

这是我的代码

#include <stdio.h>
#include <stdlib.h>
int main(){
char c,d;
c=getchar();
d=getchar();
printf("%c   %c",c,d);
return 0;}

在这里我要求输入 2 个输入,但在输入一个输入后它就停止了。我的意思是,如果我只写一个字符并按回车键,它只会显示那个字符。不询问任何进一步的意见。

但是当我同时给出两个输入然后按回车键时,它会同时显示。

【问题讨论】:

  • getchar 也将“输入”作为字符。您按下的每个键都将被 getchar 视为输入。在第一种情况下,它打印 'c' 和一个新行 '\n' 而在第二种情况下,它打印两个字符。
  • 对于基于行的输入,我建议您始终使用fgets。其他任何事情都令人困惑。但是,在使用该功能时,您可能需要remove the newline character

标签: c getchar


【解决方案1】:

所以,getchar() 正在输入一个单独的字符。但是如果你输入c,然后输入enter,你实际上是给它2,第二个是enter。因此,第二个 getchar() 实际上正在接收 enter 键,因此您会在顶部输出中看到额外的空白行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多