Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++ (auch C++0x und C++11) ::  Escape Zeichen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Fragözeichen
Unregistrierter




Beitrag Fragözeichen Unregistrierter 20:15:16 03.08.2012   Titel:   Escape Zeichen            Zitieren

Sollte man Escape Zeichen in einfachen anführungszeichen '\a' oder in "\a" normalen speichern ?
was sind die unterschiede und wie sieht es vom speicher her aus '' ist ja speicher vom zeichen und "" speicher vom zeichen +1 für nullterminierung..
Skym0sh0
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.03.2008
Beiträge: 1950
Beitrag Skym0sh0 Mitglied 20:18:01 03.08.2012   Titel:              Zitieren

es kommt drauf an was du vorhast.

ich persönlich würde mir konstanten für die escapesymbole schreiben und das wären dann chars, ist am flexibelsten

interpretiert werden müsste beides gleich, da \x als escape sequenz angesehen wird und daher als ein char interpretiert wird

der unterschied dürfte sich echt nur bei der größe auswirken und dann auch nur wenn du die nicht zwischen 2 std::strings reinpackst
Sone
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.05.2012
Beiträge: 3141
Beitrag Sone Mitglied 20:36:09 03.08.2012   Titel:              Zitieren

Escapesequenzen sind einfach andere Schreibweisen fuer ASCII-Zeichen in einem char/String Literal.

Welches Literal du brauchst (oder welchen Datentyp zum Speichern) ist davon abhaengig was du machen willst.
Merke aber: Das Schreiben eines Zeichens in einen Stream (cout << ch :D ) duerfte etwas schneller sein als die eines Strings (wie kurz er auch sein moege).

_________________
You want to do X, and you think Y is the best way of doing so. Instead of asking about X, you ask about Y. | Wenn man was zum Lachen braucht: Why C++ Sucks


Zuletzt bearbeitet von Sone am 20:36:54 03.08.2012, insgesamt 1-mal bearbeitet
Michael E.
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.10.2003
Beiträge: 5712
Beitrag Michael E. Mitglied 23:18:06 03.08.2012   Titel:              Zitieren

Sone schrieb:
Escapesequenzen sind einfach andere Schreibweisen fuer ASCII-Zeichen in einem char/String Literal.

Möööp. Deine Wette könnte man dir stündlich um die Ohren hauen.

_________________
Your password must be at least 18770 characters and cannot repeat any of your previous 30689 passwords. Please type a different password. Type a password that meets these requirements in both text boxes. (http://support.microsoft.com/kb/276304/en-us/)
Eisflamme
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.06.2009
Beiträge: 2871
Beitrag Eisflamme Mitglied 00:20:41 04.08.2012   Titel:              Zitieren

Was genau stimmt daran denn nicht?

PS: Michael E. und Sone geben ein schönes Paar ab. :o)

_________________
www.mihahome.de - Texte zu Englisch, Geographie sowie Präsentationen und Lesenswertes


Zuletzt bearbeitet von Eisflamme am 00:20:58 04.08.2012, insgesamt 1-mal bearbeitet
Sone
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.05.2012
Beiträge: 3141
Beitrag Sone Mitglied 15:17:10 04.08.2012   Titel:              Zitieren

Michael E. schrieb:
Sone schrieb:
Escapesequenzen sind einfach andere Schreibweisen fuer ASCII-Zeichen in einem char/String Literal.

Möööp. Deine Wette könnte man dir stündlich um die Ohren hauen.

Aber es stimmt doch. Es sind Zeichenkombinationen fuer Zeichen (überwiegend Whitespaces), die man nicht im Code in das Literal "schreiben" kann, ohne die Syntax zu beleidigen:

C++:
'\n' // <- Ok
'
'
// <- Was weiss ich welcher Fehler jetzt kommt.


Aber natürlich haste Recht. Es ist keine andere Schreibweise, falsch ausgedrückt. Es ist eine Zeichenkombination die ein ASCII-Zeichen ersetzt.

\n ersetzt das ASCII-Zeichen an Position 10 in der Tabelle, ein Befehl zum Zeilenvorschub ( :arrow: newline) in bspw. Konsolen.

Bspw. ist
C++:
std::cout << '\n';


dasselbe wie

C++:
std::cout << static_cast<char>(10);


@Eisflamme: Der hasst mich. Und zurecht.

_________________
You want to do X, and you think Y is the best way of doing so. Instead of asking about X, you ask about Y. | Wenn man was zum Lachen braucht: Why C++ Sucks


Zuletzt bearbeitet von Sone am 15:18:00 04.08.2012, insgesamt 1-mal bearbeitet
Michael E.
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.10.2003
Beiträge: 5712
Beitrag Michael E. Mitglied 14:22:51 06.08.2012   Titel:              Zitieren

Sone: An der Formulierung "andere Schreibweise" störe ich mich gar nicht. Es sind die ASCII-Zeichen, die mich stören. Weder sind Escape-Sequenzen auf ASCII beschränkt, noch muss ASCII überhaupt abgebildet werden. Genauso gut könnte ich sagen, Escape-Sequenzen sind nur eine andere Schreibweise für EBCDIC- oder UTF8-Zeichen.
Zitat:
Es sind Zeichenkombinationen fuer Zeichen (überwiegend Whitespaces), die man nicht im Code in das Literal "schreiben" kann, ohne die Syntax zu beleidigen

Warum schränkst du schon wieder ein? Mit Escape-Sequenzen kann man alle Zeichen umschreiben, nicht nur die, die du nicht so schön tippen kannst.

_________________
Your password must be at least 18770 characters and cannot repeat any of your previous 30689 passwords. Please type a different password. Type a password that meets these requirements in both text boxes. (http://support.microsoft.com/kb/276304/en-us/)


Zuletzt bearbeitet von Michael E. am 14:24:24 06.08.2012, insgesamt 1-mal bearbeitet
c++.de :: C++ (auch C++0x und C++11) ::  Escape Zeichen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.