如何在C中提示用户从键盘输入整数和字符
我试图找出从用户那里获得整数和字符的最佳方法 以下是我到目前为止的情况:如何在C中提示用户从键盘输入整数和字符,c,C,我试图找出从用户那里获得整数和字符的最佳方法 以下是我到目前为止的情况: #include <stdio.h> int main() { int a; char b; printf("enter the first number: \n"); scanf("%d", &a); printf("enter the second char: \n"); scanf("%c", &b); printf("Number
#include <stdio.h>
int main()
{
int a;
char b;
printf("enter the first number: \n");
scanf("%d", &a);
printf("enter the second char: \n");
scanf("%c", &b);
printf("Number %d",a);
printf("Char %c",b);
return 0;
}
#包括
int main()
{
INTA;
字符b;
printf(“输入第一个数字:\n”);
scanf(“%d”和“&a”);
printf(“输入第二个字符:\n”);
scanf(“%c”和“b”);
printf(“编号%d”,a);
printf(“字符%c”,b);
返回0;
}
输出显示不正确。这有什么问题吗?
输入号码后,按enter键。由于
scanf
函数对输入流起作用,当您在读取数字后尝试处理下一个char
时,您读取的不是您键入的字符,而是前面的'\n'
字符。(也就是说,因为在键入字符之前,您按下的Enter键在输入流中添加了一个'\n'
字符)
您应该使用以下命令将第二次调用更改为scanf
scanf(" %c", &b);
请注意,在格式化字符串中添加了空格字符。格式化字符串中的初始空格有助于跳过中间的任何空格
此外,您可能希望在所进行的两次printf
调用的格式字符串末尾添加\n
,以获得更好的输出格式。输入号码后,按enter键。由于scanf
函数对输入流起作用,当您在读取数字后尝试处理下一个char
时,您读取的不是您键入的字符,而是前面的'\n'
字符。(也就是说,因为在键入字符之前,您按下的Enter键在输入流中添加了一个'\n'
字符)
您应该使用以下命令将第二次调用更改为scanf
scanf(" %c", &b);
请注意,在格式化字符串中添加了空格字符。格式化字符串中的初始空格有助于跳过中间的任何空格
此外,您可能希望在所做的两个printf
调用的格式字符串末尾添加\n
,以获得更好的输出格式。您的输入和输出语句很好。只需替换printf(“数字%d”,a)代码>带有printf(“编号%d\n”,a)
以更好地格式化输出。您还应该将第二条scanf语句更改为scanf(“%c”和&b)代码>。这将处理输入数字后输入的换行符。您的输入和输出语句很好。只需替换printf(“数字%d”,a)代码>带有printf(“编号%d\n”,a)
以更好地格式化输出。您还应该将第二条scanf语句更改为scanf(“%c”和&b)代码>。这将处理输入数字后输入的换行符。这里您需要处理隐藏字符'\n',方法是在scanf()函数中的%c之前提供空格,这样“STDIN”缓冲区将被清除,scanf将等待“STDIN”缓冲区中的新字符
在程序中修改此语句:scanf(“%c”和&b);到scanf(“%c”和“b”) 这里需要处理隐藏字符“\n”,方法是在scanf()函数中的%c之前提供空格,以便清除“STDIN”缓冲区,scanf将等待“STDIN”缓冲区中的新字符
在程序中修改此语句:scanf(“%c”和&b);到scanf(“%c”和“b”) 新行字符(按enter键)是隐藏的重影:)新行字符(按enter键)是隐藏的重影:)