gpt4 book ai didi

c++ - 输入的 if 语句 (cin)

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:48 25 4
gpt4 key购买 nike

在练习一些 C++ 时,我遇到了书中的一些代码。使用带断缝的 if 语句对我来说有点不必要:

如果 (!(cin >> dstep))休息;

这对我来说有点老套,简单地使用一个没有 if 或 break 的 cin >> dstep 就可以很好地运行程序。有什么想法吗?

                    int main()
{
using namespace VECTOR;

srand(time(0)); //seed random-number generator
double direction;
Vector step; //creates default object
Vector result(0.0, 0.0); //
unsigned long steps = 0;
double target;
double dstep;

cout << "Enter target distance (q to quit): ";

while (cin >> target)
{
cout << "Enter step length: ";
if (!(cin >> dstep)) //if NOT inputing into dstep THEN break/means if INPUTING is TRUE, keep going and don't break out of loop
break;
//cin >> dstep // why not just use this?
while (result.magval() < target)
{
direction = rand() % 360;
step.set(dstep, direction, 'p'); //sets the values dstep and direction based on the form; in this case 'p'
result = result + step;
steps++;
}
cout << "After " << steps << " steps, the subject "
"has the following location:\n";
cout << result << endl;
result.polar_mode();
cout << " or\n" << result << endl;
cout << "Average outward distance per step = "
<< result.magval() / steps << endl;
steps = 0;
result.set(0.0, 0.0);
cout << "Enter target distance (q to quit): ";
}
cout << "Bye!\n";

cin.get();
return 0;
}

最佳答案

您必须启用异常或检查每个流输入操作,否则当输入格式错误时,您可能会陷入无限循环,或者只是得到错误的结果。

关于c++ - 输入的 if 语句 (cin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10611676/

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