Ich muss Zeicheneingabe vom Benutzer erhalten, bis er eine Zahl eingibt. Ich brauche auch die zuletzt eingegebene Nummer.Eingabe vom Benutzer erhalten, bis er eine Nummer eingibt
#include <iostream>
using namespace std;
int fun() {
char c;
while(1) {
if(cin>>c == 1) { //To check if we are still getting input
if(isdigit(c)) { //If a number is found return to the main function
return c-48; //Char converted to Int
}
}
else {
break;
}
}
return c-48;
}
int main() {
int a = fun();
cout<<a;
return 0;
}
nun für die Eingabe wie ahd qer 12 32
gibt es Ausgang als 1
die ich es wissen würde. Was ich für die Ausgabe möchte, ist 12
. Wie geht das? Sie können auch einige Änderungen in der Hauptfunktion vornehmen. Ich möchte schließlich die Nummer in der Variablen a
gespeichert.
SOLUTION
#include <iostream>
using namespace std;
int fun() {
string c;
while(cin>>c) {
if(isdigit(c[0]))
return stoi(c);
}
}
int main() {
int a = fun();
cout<<a<<" ";
return 0;
}
@Gyanshu Was Sonderzeichen (zum Beispiel '#'/'$'/etc ..)? Warum benutzt du 'isdigit' nicht, wenn du wissen willst, ob das Zeichen eine Ziffer darstellt? –
Zumindest in C ist die Übergabe eines (vorzeichenbehafteten) Zeichens an "isdigit" ein undefiniertes Verhalten (und Sie brauchen eine '#include'). –
melpomene
Ok, ich würde es durch 'isdigit' ersetzen. Aber das gibt mir auch nur die erste Ziffer der Nummer. Gibt es eine Möglichkeit, die ganze Nummer zu bekommen? – Gyanshu