Jan*_*nny -1 c++ function char
我编写了一个函数,只有在输入为"1","2","3"或"4"时才能进行.所以,如果我输入5,例如.它说"这是错的,再试一次".我的问题是,如果我输入例如."12"它仍然继续进行,不仅如此,它将"1"放入第一个cin >>并将"2"放入我程序的下一个cin >>.我怎么能告诉他"12"也不对,但只有"1,2,3和4"?
这是我的功能
char zeichen;
void operation()
{
bool beginn = false;
do
{
cout << "----- Geben Sie hier den Operator ein, mit welchem Sie rechnen wollen -----" << endl;
cout << "___________________________________________________________________________" << endl << endl;
cout << " | 1 | Addition" << endl;
cout << " | 2 | Subtraktion" << endl;
cout << " | 3 | Multiplikation" << endl;
cout << " | 4 | Division; inklusive Rest" << endl;
cout << "___________________________________________________________________________" << endl << endl << endl;
cout << "Ihre Auswahl: ";
cin >> zeichen;
switch(zeichen)
{
case '1':
case '2':
case '3':
case '4':
beginn = true;
break;
default:
cout << endl << "Ihre Angabe ist nicht richtig. Bitte geben Sie eine der gegebenen Ziffern ein." << endl << endl;
system("PAUSE");
break;
}
system ("CLS");
}
while (beginn == false);
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要程序,它被称为(只是它的一部分)
#include <iostream>
#include "conversions.h"
#include "rechnung.h"
#include "menue.h"
#include <string>
using namespace std;
int rechnung()
{
unsigned int basis;
string eingabe1;
string eingabe2;
//unsigned int eingabe;
//unsigned int rest = 0;
char again = 'Y';
while (again == 'Y')
{
operation();
system ("CLS");
cout << "Nun geben Sie die Basis des Zahlensystems ein, in welchem Sie rechnen möchten" << endl;
cin >> basis;
cout << endl << "Sie rechnen nun im " << basis << "er Zahlensystem" << endl << endl;
system ("CLS");
cout << "Geben Sie bitte Ihre zwei Zahlen ein, mit denen Sie rechnen möchten" << endl;
cout << " 1. Zahl: ";
cin >> eingabe1;
cout << endl << "2. Zahl: ";
cin >> eingabe2;
cout << endl;
Run Code Online (Sandbox Code Playgroud)
最简单的方法是使用:
int zeichen;
Run Code Online (Sandbox Code Playgroud)
和
case 1:
case 2:
case 3:
case 4:
Run Code Online (Sandbox Code Playgroud)
cin
然后将读取多个字符并将输入解释为数字,而不是单个字符.
编辑:如果你想处理其他输入,那么你应该使用std::string zeichen
.你将使用if
s而不是switch