gpt4 book ai didi

c++ - 新手与 std::cin 斗争

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

我遇到一个问题,一个简单的函数在到达 std::cin 请求时似乎终止了。编译器不会抛出任何警告或错误,也不会发生运行时错误,程序只会返回到主菜单。

片段:

#include <iostream>
#include <math.h>

using namespace std;

void circle()
{
float radius = 0.0f, diameter = 0.0f, circumference = 0.0f, area = 0.0f;
const float pi = 3.14f;

cout << "Enter radius." << endl;
cin >> radius;
cout << "Radius: " << radius << endl;
cout << "Diameter: " << 2*radius << endl;
cout << "Cirumference: " << 2*pi*radius << endl;
cout << "Area: " << pi * pow(radius, 2) << endl;
}

该函数从 main() 调用并成功调用,因为屏幕上出现“输入半径”,但没有输入请求,最后 4 条语句被跳过。然后程序简单地返回到 main()。

cin 也没有错误(并且在 main() 函数中播放时继续工作)所以我不认为它只是在读取流中的错误字符。

我只是想不通为什么 circle() 会意外退出。

最佳答案

当我尝试在 Windows XP 上使用 Visual Studio 2010 运行您的代码时,它在我的机器上执行相同的操作。

我设法通过在 main 中调用 circle() 之后放置 getchar(); 来修复它。

不确定为什么会这样,希望有人能对此有更多的了解。

**编辑:

当然它会退出,这是因为它会运行到 main 的末尾退出应用程序。

关于c++ - 新手与 std::cin 斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011988/

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