Erforschung des Rätsels der String-Ausgabefehler
Im Herzen der Codeentwicklung stößt man nicht selten auf Stolpersteine, wie zum Beispiel die Unfähigkeit, dies zu tun Ausgabezeichenfolgen. Obwohl dieses Problem scheinbar unkompliziert ist, hat es Programmierer oft verwirrt und zu stundenlangem Debuggen geführt.
Das Geheimnis der fehlenden Zeichenfolge
Bedenken Sie den folgenden Codeausschnitt:
<code class="cpp">string text; text = WordList[i].substr(0, 20); cout << "String is : " << text << endl;
Beim Versuch, diesen Code auszuführen, kann es sein, dass Sie auf den verwirrenden Fehler stoßen:
Error 2 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
Um dieses Rätsel noch weiter zu verschärfen, erzeugt selbst dieser vereinfachte Code nicht die gewünschte Ausgabe:
<code class="cpp">string text; text = "hello"; cout << "String is : " << text << endl;
Enthüllung der Lösung
Der Schlüssel zum Aufdecken dieser mysteriösen Fehlermeldungen liegt in einem entscheidenden Aspekt, der bei unserem Eifer, den perfekten Code zu erstellen, oft übersehen wird: einschließlich der notwendigen Header. Der Code erfordert zwei wesentliche Header, um die ordnungsgemäße Ausgabe von Zeichenfolgen zu ermöglichen:
<code class="cpp">#include <string> #include <iostream></code>
Durch das Einschließen dieser Header wird sichergestellt, dass der Compiler weiß, wie er mit Zeichenfolgenoperationen umgeht. Ohne sie ist der Compiler nicht in der Lage, den String-zu-String-Verkettungsoperator (<<) korrekt zu interpretieren, was zu den gemeldeten Fehlern führt.
Nehmen Sie die Header an und begeben Sie sich auf den Weg des Erfolgs
Sobald diese Header vorhanden sind, fließen die Strings nahtlos aus Ihrem Code, sodass Sie die Welt der String-Manipulation mit Zuversicht erobern können. Der folgende Code wird nun einwandfrei ausgeführt:
#include
#include
string text;
text = WordList[i].substr(0, 20);
cout << "String is : " << text << endl;
string text2 = "hello";
cout << "String is : " << text2 << endl;Das obige ist der detaillierte Inhalt vonWarum kann mein C-Code keine Zeichenfolgen ausgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!