我当前正在尝试获取进行用户非字符输入的用户字符输入,例如整数,浮点/双精度等。我已经阅读了几种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(空格或换行符),而不是实际的字符输入。因此,如果有人知道解决此问题的方法,我将不胜感激。谢谢!