2017-07-23 4 views
-2
#include <iostream> 
#include <string> 
using namespace std; 

int main() { 
    string str {5, 'c'}; 
    cout << str; // "\005c" 
} 

Output: cInitialisieren C++ String mit Ganzzahl- und Zeichen

Mit GDB, es wird bestätigt, dass str "\ 005C" mit str [0] = '\ 005' enthält str [1] = ' c '

Warum str [0] wird nicht in der Ausgabekonsole gedruckt? Verwendete C++ - Version: C++ 11

+2

ASCII-Code 5 ist kein druckbares Zeichen ... – John3136

Antwort

0

ASCII 5 steht für ein Signal, das auf Empfängerseite eine Antwort auslösen soll. Es ist nicht auf der Konsole sichtbar. Referenz: http://ascii.cl/

Zum Beispiel: versuchen Sie 65 statt 5, Sie sehen "A".

+1

bearbeiten diese Informationen in Ihrer Frage statt. – HolyBlackCat

+0

Verwenden Sie den Link zum Bearbeiten Ihrer Frage, um weitere Informationen hinzuzufügen. Die Schaltfläche Post-Antwort sollte nur für vollständige Antworten auf die Frage verwendet werden. - [Aus Bewertung] (/ review/low-quality-posts/168006464) – chtz

+0

@HolyBlackCat Ich denke, das soll eine Selbst-Antwort (keine Klärung/Kommentar) sein, also ist dies der richtige Ort dafür. (Das lässt noch offen, ob dieses Q/A-Paar es wert ist, behalten zu werden ...) – nobody

0

Die ASCII-Nummer 5 ist nicht druckbar. ASCII table

ASCII-Darstellung von 5, die 53 ist druckbar.

string str {53, 'c'}; 
    cout << str; // 5c 
0

Da ASCII Wert von 5 ist 53.

So können Sie auf diese Weise versuchen:

#include <iostream> 
#include <string> 
using namespace std; 


int main() { 
    string str {53, 'c'}; 
    cout << str; // "\005c" 
}