字符用户输入跳过或不跳过但尚未存储

时间:2018-09-25 10:30:28

标签: c character scanf user-input fflush

我当前正在尝试获取进行用户非字符输入的用户字符输入,例如整数,浮点/双精度等。我已经阅读了几种Stack溢出解决方案,但似乎没有一个解决方案我。这是我尝试编写此代码的六种不同方式:

#include <stdio.h>
int main(void)
{
  int integer;
  char character;
  scanf("%d", &integer);
  fflush(stdin);
  scanf("%c", &character);
  printf("The ASCII Code of %c is %d", character, character);

这给出了ASCII码10(\ n,即换行符),表示fflush(stdin)没有刷新换行空格。然后,从这一点出发,如果我们看一下7-8行,将会更加相关和方便。现在,我删除了fflush(stdin)并在scanf()中的%c转换说明符之前添加了一个空格,即 scanf(" %c", &character)这也不起作用,因此我尝试了以下操作: scanf("%c\n", &character)的确使我可以输入一个值,这与以前的情况不同,尽管该字符与输入的字符不同,因为生成的ASCII码仍然是10。我还尝试使用{{1}来操纵代码},但ASCII码为0或10(空格或换行符),而不是实际的字符输入。因此,如果有人知道解决此问题的方法,我将不胜感激。谢谢!

0 个答案:

没有答案