2016-07-03 21 views
2

Ich benutze G ++ Version 4: 4.8.2-1ubuntu6 mit Eclipse 3.8 auf Linux Mint.C++ (g ++) Sonderzeichen Codierung (' a', ' b', etc.)

folgende Beispiel aus meiner C++ Buch funktioniert nicht wie erwartet:

//bondini.cpp -- using escape sequences 
#include <iostream> 
int main() 
{ 
    using namespace std; 
    cout << "\aOperation \"HyperHype\" is activated\n"; 
    cout << "enter sercret code:________\b\b\b\b\b\b\b\b"; 
    long code; 
    cin >> code; 
    cout << "\aYou entered: " << code << "...\n"; 
    cout << "\aCode OK! Commencing Z3!\n"; 
return 0; 
} 

I Ergebnis erhalten Sie bei der das Programm ausgeführt wird:

output here

In Eclipse und Verzeichnis I UTF- bin mit 8 Codierung. Warum spielt '\ a' nicht so, wie er sollte und '\ b' bewegt den Cursor nicht um ein Leerzeichen zurück, während '\ n' richtig funktioniert.

bearbeiten: Wie ich es verstehe, ist es der Compiler, der das Durcheinander macht. -> Ich habe mich geirrt, im Terminal funktioniert es gut, aber Eclipse 'Terminal' funktioniert nicht.

+2

Es hängt vom Terminal ab, ob die Sonderzeichen unterstützt werden. –

+0

Wenn ich es direkt vom Terminal aus starte, funktioniert es gut. Es scheint also, dass es sich um ein Eclipse- "Terminal" -Problem handelt. –

Antwort

2

Wohin Sie Ihre Ausgabe senden. Was das Ziel damit macht, liegt ganz in seinen eigenen Händen. Während also Eclipse diese Sonderzeichen nicht unterstützt, sollte Ihr Terminal dies tun.

+0

Das ist wahr, ich habe versucht, es im Terminal laufen und es hat funktioniert. Allerdings ist mein Eclipse "Terminal" ebenfalls auf UTF-8 eingestellt, zeigt aber immer noch eine falsche Ausgabe an. Hast du eine Idee, wo das Problem sein könnte? –

+0

Dies ist eine Eclipse-Implementierung, also gibt es wirklich nichts, was Sie tun können. – Shiro