C++ 菜鸟与性病作斗争
我遇到了一个问题,当一个简单函数到达std::cin请求时,它似乎会终止。编译器不会抛出警告或错误,也不会发生运行时错误,程序只会返回主菜单 片段:C++ 菜鸟与性病作斗争,c++,cin,C++,Cin,我遇到了一个问题,当一个简单函数到达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
#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;
}
#包括
#包括
使用名称空间std;
空圈()
{
浮动半径=0.0f,直径=0.0f,周长=0.0f,面积=0.0f;
常数浮点pi=3.14f;
库特半径;
当我尝试在windowsxp
上使用visualstudio2010
运行您的代码时,它在我的机器上也会这样做
在调用circle()
之后,我将getchar();
放在main
中,成功地解决了这个问题
我不知道为什么会发生这种情况,希望有人能对此有更多的了解
**编辑:
当然它会退出,这是因为它会运行到退出应用程序的main
的末尾。当我在windowsxp
上尝试使用visualstudio 2010
运行您的代码时,它在我的机器上也会这样做
在调用circle()
之后,我将getchar();
放在main
中,成功地解决了这个问题
我不知道为什么会发生这种情况,希望有人能对此有更多的了解
**编辑:
当然它会退出,这是因为它会运行到退出应用程序的main
的末尾。cin
不请求输入,只是从stdin读取。所以程序会打印出来
Enter radius.
接着是一个新行。然后你可以键入半径并点击回车键。你试过了吗?cin
不请求输入,只是从stdin读取。所以你的程序会打印出来
Enter radius.
然后是一个新行。然后你可以键入半径并点击回车键。你试过了吗?好的,它在我的计算机上运行得很好。你调试过它了吗?它真的跳过了这些行吗?添加
cout << flush;
cout嗯,它在我的电脑上运行得很好。你调试过它了吗?它真的跳过了那些行吗?添加
cout << flush;
cout-Good request。我从未添加它,因为我当时认为它不相关。我错了。请求很好。我从未添加它,因为我当时认为它不相关。我错了。这是我的问题!我从未使用cin
buffer清理过。main()
有另一个cin
。我没有想到这是问题所在,因此我从未包含main()
.Derp的内容。感谢您的帮助!这是我的问题!我从未使用cin
缓冲区清理过。main()
有另一个cin
。我没有想到这是问题所在,因此我从未包含main()
.Derp的内容。谢谢您的帮助!