如何解决如何通过使用循环在scanf中使用char?
我想制作简单的计费软件,但我不知道要解决此问题
#include <stdio.h>
int main()
{
char a[20];
int i,j,b;
i = 0;
printf("How many item you have?\n>>> ");
scanf("%d",&j);
for (int i = 0; i < j; i++)
{
printf("Type the name of item no. %d?\n>>> ",i + 1);
scanf("%c",&a);
printf("Type the item quantity?\n>>> ");
scanf("%d",&b);
}
return 0;
}
如您所见,此代码仅用于提问。在这段代码中,一切都很好,但是,当我运行这段代码时,输出为:
How many item you have?
>>> 4
Type the name of item no. 1?
>>> Type the item quantity?
>>>
一切似乎都很好,但是我没有输入项目名称,循环直接询问了第二个问题。怎么可能?
解决方法
%c
的{{1}}格式说明符读取一个单个字符。要读取字符的字符串(数组),请使用scanf
格式说明符。另外,对于此类数组,您不需要%s
(的地址)运算符,因为数组名称本身将“衰减”到指向其第一个元素的指针:
&
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。