Escape Zeichen
-
hallo
habe ein problem: bei mir funktionieren fast keine Escape Zeichen -.-
kann mir wer helfen?#include <iostream> using std::cout; int main() { cout << "text1\b"; }der Code funktioniert nicht... genauso wie mit \a, \v und viele andere...
\t und \n funktionieren aber
-
Was soll \b denn sein? Schon \\b probiert?
-
Fellhuhn schrieb:
Was soll \b denn sein?
steht hier
Steht für "Backspace". Ich vermute, dass bereits geflusht (also auf die Konsole ausgegeben) wurde und/oder es an den Konsoleneinstellungen liegt.
Überhaupt würde ich mich bei den Escape-Sequenzen (Ausnahme '\n') nicht unbedingt darauf verlassen, dass sie überall wie gewünscht funktionieren.Gruß,
Simon2.
-
danke für die auskunft
!
lg Takeru
-
string text = "huhu ' haha"; text = str_replace("'", "\'", text); printf("%s",text.c_str());Ich habe SQLite und muss Text bevor ich diesen INSERT mache escapen, da sonst sowas draus werden würde
INSERT Name VALUES ('huhu ' haha',0,1)
So würde er Syntaxfehler melden, da ' so falsch interpretiert würde.
Selbe gilt bei "huhu " haha"Obiger Code bewirkt aber ne "Endlosschleife" .. zumindest hängt die Console.
Kann mir jemand sagen wie ich " und ' korrekt für SQLite escapen kann?
-
Schau dir das mal an: http://www.cppreference.com/cppalgorithm/replace_copy_if.html
-
Danke, aber ganz erlich verstehe ich da grad nur Bahnhof.

-
-
Danke schön! Das hilft schonmal weiter

-
Gleich mal Frage anhängen. Versuch mich gerade daran eine Hilfsfunktion für den SQLite3 Wrapper zu schreiben , womit ich Texte Escape.
Eine Frage wäre warum sqlite3_free(zSQL); von nöten ist und die wichtigere Frage, warum ich zSQL nicht in text reinbekomme.
'string::opertor=(char*)' will er nicht... strcpy() klappte aber auch nicht.

Was muss man denn da tun?void sqlite::escape(const string &text) { char *zSQL = sqlite3_mprintf("%q", text); text = zSQL; sqlite3_free(zSQL); }
-
void sqlite::escape(const string &text) { char *zSQL = sqlite3_mprintf("%q", text); text = zSQL; sqlite3_free(zSQL); }[/quote]
Du aktualisierst eine const ref?
-
Ich habe ein AnsiString Name mit Inhalt "Walter's".
Jetzt möchte ich das Escapen mit db->escape(Name.c_str());Wenn ich nicht const setze meckert er:
[C++ Warnung] Unit1.cpp(134): W8030 Temporäre Größe für Parameter 'text' in Aufruf von 'sqlite::escape(string &)' verwendet
Wollte jetzt nicht mit Rückgabe arbeiten
string sqlite_db::escape(string text) { char *zSQL = sqlite3_mprintf("%q", text); text = zSQL; // Fehler!!! sqlite3_free(zSQL); return text; }
-
Warum willst du nicht mit Rückgabe arbeiten?
Bist du eigentlich das hier?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-208000.html