我遇到了一个问题,一个简单的函数在到达 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() 意外退出。