当前位置:  开发笔记 > 编程语言 > 正文

学习C,循环错误

如何解决《学习C,循环错误》经验,为你挑选了1个好方法。

我的任务是创建一个简单的从小写到大写的程序.然而,在测试我的输入是否正确打印时,我注意到每次输入一个字符时,它总是会再次循环,即使它不应该.

#include 

int main() {
  char input;

  //enter a character
  //set the given input char to variable
  printf("Enter a character in lower case: \n");
  input = getchar();

  //Sentinel value is Q
  while (input != 'Q'){
    printf("you entered %c.\n",input);
    printf("\n");

    printf("Enter a character in lower case: \n");
    input = getchar();  //gets input from inside the loop
  }
  printf("Goodbye \n");
  return 0;
}

测试输出(我输入字符'g'并按下输入一次):

Enter a character in lower case:
g
you entered g.

Enter a character in lower case:
you entered
.

我没有看到问题.



1> Sourav Ghosh..:

这里的问题是由按键键入的newline字符引起的.在继续下一个输入之前,您需要清除输入缓冲区,如添加stdinENTER

 while (getchar() != '\n');

在要求下一个输入之前.

那说,getchar()返回一个int.A char可能不足以始终保持返回值,更改

 char input;

int input = 0;

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有