為什麼第二個變數不能輸入

#mac電腦寫程式的問題
#getchar()
第二個getchar()永遠無法輸入不知道為什麼有什麼解決方法嗎

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7562292
  • 这篇博客也不错, 你可以看下用getchar输入二维数组
  • 除此之外, 这篇博客: 【getchar()深入理解】中的 前言 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    该问题的原因是在输入第一个变量后,按下了回车键。回车键会被getchar()函数读取为一个换行符,并存储在输入缓冲区中。当执行到getchar()函数获取第二个变量时,它会读取输入缓冲区中的换行符,而不是用户输入的实际字符。

    为了解决这个问题,你需要在获取第一个变量后,再调用一次getchar()函数来清除输入缓冲区中的换行符。这样,在获取第二个变量时,getchar()函数才能读取到用户输入的实际字符。下面是修改后的代码片段:

    #include <stdio.h>
    
    int main() {
      char firstVariable;
      char secondVariable;
    
      printf("请输入第一个变量: ");
      firstVariable = getchar();
      getchar(); // 用于清除输入缓冲区中的换行符
    
      printf("请输入第二个变量: ");
      getchar(); // 再次调用getchar()函数,清除输入缓冲区中的换行符
      secondVariable = getchar();
      getchar(); // 用于清除输入缓冲区中的换行符
    
      printf("第一个变量: %c\n", firstVariable);
      printf("第二个变量: %c\n", secondVariable);
    
      return 0;
    }
    

    参考屏幕截图:

    请输入第一个变量: A
    请输入第二个变量: B
    第一个变量: A
    第二个变量: B
    

    这样修改后,输入第一个变量后再输入第二个变量,就能正确获取到两个变量的值了。如果你遇到其他问题,请提供更多细节,谢谢!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可能是getchar吃了你的回车符
你可以在getchar前面加上
fflush(stdin);
或者加上一个空的 getchar();

在第一次和第二次之间插入一句:getchar(); 如: ch = getchar(); getchar(); ch2 = getuchar();