gpt4 book ai didi

c++ - C 和 C++ 中的负用户输入

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:27 26 4
gpt4 key购买 nike

我有一个看似微不足道的问题,但我自己解决起来却有很大的问题。这是我的简单代码:

#include <cstdio> 
int main(int argc, char *argv[]){
int z;
scanf("%d", &z);
for(int i = 0; i < z; ++i){
double x0, x1;
scanf("%lf %lf", &x0, &x1);
printf("%lf %lf", x0, x1);
printf("\n");
}
return 0;
}

当我在下面给出程序输入时:

4 
1 7
4 2
7 1
−21 −3

我收到这个输出:

1.000000 7.000000 
4.000000 2.000000
7.000000 1.000000
7.000000 1.000000

看起来最后一行根本没有被阅读。尽管如此,我还是在其他数据集上测试了我的程序,并做出了一些有趣的观察:

1)程序在Ubuntu(我和 friend 的电脑上查过)或ideone上执行时出现这个问题。

2)程序在Windows(我和 friend 的电脑)上没有问题。

3) 错误可能是由负值引起的,但不是所有负值引起的。

4) 使用 iostream 而不是 cstdio 不能解决问题。

最佳答案

scanf 需要 hyphen-minus character使用 ASCII 代码 45 (-)。

您不小心输入了非 ASCII minus sign (−).

关于c++ - C 和 C++ 中的负用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com