Im unterschiedliche Funktionen von der Tastatur zu nennen versuchen, aber ich habe ein paar Probleme durch meinen Mangel an Wissen/Erfahrung mit cin konfrontiert, istringstream etc.Here meine vereinfachte Code:C++ Lesen von stdin istringstream mit
#include <iostream>
#include <sstream>
using namespace std;
int main(int argc,char **argv) {
string line;
do {
getline(cin,line);
istringstream iss(line);
string word;
iss >> word;
if (word == "function") {
int id;
if (!(iss >> id)) {
cout << "Not integer.Try again" << endl;
continue;
}
cout << id << endl;
iss >> word;
cout << word << endl;
}
else cout << "No such function found.Try again!" << endl;
} while (!cin.eof());
cout << "Program Terminated" << endl;
return 0;
}
die 2 Probleme, die ich mit derzeit beschäftigen, sind:
• Warum nach der Überprüfung, ob ich eine ganze Zahl der do-while-Schleife endet bekam, wenn ich etwas eingeben, die integer ist nicht? (zB "function dw25") -Hat zu verwenden fortfahren; statt Break; .Thought Break würde die äußere If-Bedingung verlassen.
• Wie kann ich das Problem lösen, das auftritt, wenn ich "function 25dwa" eintippe, weil ich nicht ID == 25 & word == dwa bekommen möchte.
http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong –
Der Grund, warum die do-while-Schleife beendet ist, weil Sie verwenden ** Pause ** .if (! (iss >> id)) {cout << "Nicht ganzzahl.Versuchen Sie erneut" << endl; ** Pause; **} –
Yep fand es heraus und redigierte meine Post.Thanks tho.Versuchen Sie, eine Lösung oder eine Umgehungslösung für die 2. Frage –