如何解决为什么在%c之前需要空格才能使代码正常工作?
这真的很有趣
#include <stdio.h>
int main( )
{
char another;
int num;
do
{
printf("Enter a number: ");
scanf("%d",&num);
printf("\nWant to enter another number y/n ");
scanf("%c",&another);
}while(another == 'y');
return 0;
}
要输入另一个数字y / n C:\ Users \ Shivam Singh \ Documents \ Let's C \ From Book \ Ch3>
要区分错误代码和正确代码,请查看%c。两种代码的唯一区别是正确代码中%c之前的空格。
正确的代码
#include <stdio.h>
int main( )
{
char another;
int num;
do
{
printf("Enter a number: ");
scanf("%d",&num);
printf("\nWant to enter another number y/n ");
scanf(" %c",&another);
}while(another == 'y');
return 0;
}
要输入另一个数字y / n n
解决方法
scanf()
需要使用空格来消耗前stdin
留在scanf()
中的待处理换行符,前一个读取数字并停止使用最后一位数字后的字符。如果没有此空间,scanf()
会将下一个字节存储到another
中,很可能是用户键入以提交数字的换行符。
请注意,您还应该测试scanf()
的返回值,以检测无效的输入或文件的提前结束。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。