deepthroat
Erfahrenes Mitglied
Nein, die Warnung C4786 ist nur eine Warnung - die man ruhig erstmal ignorieren kann. Es ist nur eine Begrenzung des Compilers wenn er Debugging Symbole generiert. Diese sind nämlich auf 255 Zeichen begrenzt und wenn ein Symbol doch mal länger ist (was häufig bei Template Code und mit der STL passiert) dann generiert er eine solche Warnung.partitionist hat gesagt.:Gut der Code funktioniert THX. Bei mir werden 14 Warnungen ausgegeben wie z.b:
warning C4786: [...]
Ist das schlimm?
Man kann die Warnungen so ausschalten:
Code:
#pragma warning (disable: 4786)
NULL ist ein Macro welches den Wert eines Nullpointers repräsentiert. Wenn du etwas anderes als einen Pointer wie z.B. einen int vergleichst solltest du lieber Literale verwenden anstatt von NULL. Es sieht einfach irgendwie komisch aus. Außerdem kannst du alternativ die Funktion string::empty () benutzen.partitionist hat gesagt.:Code:if(str.length() == NULL)
Code:
string str; //Eingabe String
string cmd;
list<string> params;
do
{
Input_Pfeil("");
fontGreen();
if (getline (cin, str)) {
if (str.empty ())
// Eingabezeile war leer.
continue;
istringstream cmdline (str);
if (cmdline >> cmd) {
string tmp;
while (cmdline >> tmp) {
params.push_back (tmp);
}
}
if (cmd == "blah") {
// ...
else if (cmd == "foo") {
// ...
// ...
else {
cout << "Der Befehl: " << str << " ist unbekannt" << endl;
}
}
} while(cin);