Я пишу программу, которая даст область формы, и мне нужно создать меню для пользователя, чтобы выбрать форму с помощью переключателя. Так что мой вопрос: могу ли я иметь cin с регистром коммутатора или мне нужно форматировать мой код по-другому.
#include <cmath>
#include <iostream>
#include <cassert>
using namespace std;
int main()
{
int shape, invalid;
double area, radius, width, height;
const double pi=3.14159;
cout << "Shape Menu"<<endl<< "1. Circle"<<endl<<"2. Rectangle"<<endl<<"3. Triangle"<<endl
<<"shape (1, 2, or 3)? ";
cin >> shape;switch (shape){
case 1: cout << "Radius? "<<;
cin >> radius >> endl;break; // this is were my error is when I compile
case 2: cout << "width? ";
cin >> width >> endl;
cout << "Height? ";
cin >> height >> endl;break;
case 3: cout<< "Base? ";
cin >> base >> endl;
cout << "Height? ";
cin >> height >> endl;break;
default: invalid = shape
cout<< shape << "is an invalid menu option, program terminated."<<endl;
assert (invalid == T)
}return 0;
}
case 1: cout << "Radius? "<<;
у тебя бродячий <<
после "Radius?"
Да, вы можете включить cin
после случаев переключения заявления. Случаи как case 1:
это просто ярлыки. Таким образом, инструкции после могут быть любые инструкции.
В вашем коде просто много ошибок компиляции: вот возможная замена для вашего оператора switch.
switch (shape){
case 1: cout << "Radius? ";
cin >> radius;break; // no more error here
case 2: cout << "\nwidth? ";
cin >> width;
cout << "\nHeight? ";
cin >> height;break;
case 3: cout<< "Base? ";
cin >> base;
cout << "\nHeight? ";
cin >> height;break;
default:
invalid = shape;
cout<< shape << "is an invalid menu option, program terminated."<<endl;
}
Вы можете заполнить с помощью enum и переключиться:
#include <iostream>
enum SHAPES{CIRCLE = 1, SQUARE, RECTANGLE, TRIANGLE, CUBE};int main()
{
int choice;
std::cout << "1: Circle 2: Square 3: Rectangle 4: Triangle 5: Cube" << std::endl;
std::cout << " >> ";
std::cin >> choice;
std::cout << std::endl;
switch(choice)
{
case CIRCLE:
{
//do something
}
break;
case SQUARE:
{
//do something
}
break;
case RECTANGLE:
{
//do something
}
break;
case TRIANGLE:
{
//do something
}
break;
case CUBE:
{
//do something
}
break;
default:
std::cout << "Bad Entry!" << std::endl;
}
std::cout << std::endl;
return 0;
}
Конечно, вы можете использовать cin в операторе switch. Там нет такой границы. вы получаете ошибки из-за многих других синтаксически неправильных утверждений в вашем коде. Проверьте ответ @ Franck, поскольку он уже исправил их. Если вы хотите узнать больше об операторе Switch. Это хорошие ссылки.
https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm