shark8890 发表于 2022-4-1 13:01:07

scanf("%d,%d,%d",&a,&b,&c)输入疑问

本帖最后由 shark8890 于 2022-4-1 14:20 编辑

今天使用DEV-C++编写程序,发现下面两个输入的数值后,输出完全不一样?

从键盘输入5 5 5
1:scanf("%d,%d,%d",&a,&b,&c);
输出a,b,c
a 5 b 1 c 0
2:scanf("%d%d%d",&a,&b,&c);
a 5 b 5 c 5
请教大神,这是什么原因?

已解决,a接收到数据5,b接收到了数据为真1,c没有接收到为0.

wp231957 发表于 2022-4-2 04:01:49

你那个逗号好起来像全角逗号

andy大宝 发表于 2022-4-3 09:50:27

本帖最后由 andy大宝 于 2022-4-4 13:24 编辑

scanf("%d,%d,%d",&a,&b,&c);的格式字符串中有非格式字符",",输入时也应该对应:
5,5,5
555请按任意键继续. . .
而scanf("%d%d%d",&a,&b,&c);只需要用空格或回车区分就可以了:
5
5
5
555请按任意键继续. . .

5 5 5
555请按任意键继续. . .
扩展:假如程序为:
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c;
        scanf("a=%d,b=%d,c=%d",&a,&b,&c);
      printf("%d%d%d",a,b,c);       
        system("pause");
        return 0;
}
则输入方式和结果应为:
a=5,b=5,c=5
555请按任意键继续. . .
页: [1]
查看完整版本: scanf("%d,%d,%d",&a,&b,&c)输入疑问