c++ scanf多个负数输入问题

double a,b,c,d;
scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d);

这里,假如输入数是-1.2,2.34,-3,-4.56
那么除了第一个数a外,后面三个都不能得到正确的值,这是为什么?
正数和整数就可以。
而要想输入多个负数,scanf中间就要用“ ”空格分开,不能用“,”逗号,假如格式化必须要使用逗号怎么办(在某种格式化输入中需要使用逗号),为此我折腾了半天?

scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d);中逗号去掉

 scanf("%lf%lf%lf%lf",&a,&b,&c,&d);

出现这个问题是因为后面因为给double传了‘,’,所以当无效输入处理了,使用函数的时候小心点

在VS2013下没有出现你所说的问题
这不应该是这个函数的Bug,而是你输入的数据或者编译器的问题了

你实在不行可以先取得整行的输入
再把这个字符串中的逗号替换为其他字符如空格
再用sscanf(strIn, "%lf %lf %lf %lf", &a, &b, &c, &d")

建议你多测试下,如果是编译器的Bug最好就换个编译器