我有这段代码。它应该完美地工作。这是一个圈子计算器;我正在做的是一个练习。我希望用户可以选择返回“主菜单”。我用char * e做了一个yes/no的提示;但它未初始化。我怎么能初始化使用未初始化的局部变量'e'
#include <iostream>
using namespace std;
class Circlecalc {
public:
double const pi = 3.1415962543;
double diameter;
double radius;
double circumference;
};
int _welcome() {
Circlecalc calc;
cout << endl;
int i = 0;
char* e;
cin >> i;
while (i != 5)
{
switch (i) {
case(1) :
cout << "Enter your radius." << endl;
cin >> calc.radius;
cout << endl;
cout << (calc.radius * 2) * calc.pi << endl;
cout << "Exit? [Y/N]" << endl;
cin >> e;
if (e == "Y") {
_welcome();
}
else if (e == "N") {
}
else {
cerr << "Unsupported function" << endl;
}
case(2) :
cout << "Enter your diameter" << endl;
cin >> calc.diameter;
cout << endl;
cout << (calc.diameter * 2) * calc.pi << endl;
cout << "Exit? [Y/N]" << endl;
cin >> e;
if (e == "Y") {
_welcome();
}
else if (e == "N") {
}
else {
cerr << "Unsupported function" << endl;
}
break;
case(3) :
cout << "Enter the circumference" << endl;
cin >> calc.circumference;
cout << endl;
cout << (calc.circumference/2)/calc.pi;
cout << "Exit? [Y/N]" << endl;
cin >> e;
if (e == "Y") {
_welcome();
}
else if (e == "N") {
}
else {
cerr << "Unsupported function" << endl;
}
break;
case(4) :
cout << "Enter the circumference" << endl;
cin >> calc.circumference;
cout << endl;
cout << calc.circumference/calc.pi;
cout << "Exit? [Y/N]" << endl;
cin >> e;
if (e == "Y") {
_welcome();
}
else if (e == "N") {
}
else {
cerr << "Unsupported function" << endl;
}
break;
case(5) :
return(0);
break;
default:
cerr << "Unsupported function." << endl;
}
}
}
用'std :: string e;'替换'char * e;' – Jarod42
编译器在哪一行中抱怨? –
它是什么意思? –