Sonderbare gcc Fehler Streu / fehlender Abschluss "Zeichen in C
-
05-10-2019 - |
Frage
ich folgende Fehlermeldungen erhalten:
error: missing terminating " character
und
error: stray `\' in program
In dieser Zeile von C-Code:
system("sqlite3 -html /home/user/.rtcom-eventlogger/el.db \"SELECT service_id, event_type_id,free_text, remote_uid FROM Events WHERE remote_uid=\'%d\' ORDER BY start_time DESC;\" > lol.html", nr);
"nr" ist ein Integer-Variable.
Ich habe über diese so oft gegangen sind aber völlig stecken eine Lösung zu finden.
EDIT:. Die Fehler sind der Ausgang während mit gcc kompilieren, wenn ich nicht so klar machen
Lösung
Innerhalb eines Strings in doppelten Anführungszeichen in C, ich glaube nicht, dass \'
einen Sinn hat. Es sieht aus wie Ihr backslashing ist gemeint sollte die einfachen Anführungszeichen in dem Shell , das heißt, sie innerhalb der Zeichenfolge backslashed Doppel werden zu schützen. remote_uid=\\'%d\\'
Andere Tipps
Nun, Sie brauchen nicht die einfachen Anführungszeichen innerhalb der Zeichenfolge zu entkommen (z \'
sollte gerade sein '
), aber ich bin sicher nicht, dass der Fehler Sie sehen verursachen würde.
Ich hatte das gleiche Problem, im Grunde versucht, das Gleiche zu tun.
Mein Problem war, dass ich WinZip verwendet, um die Quelle zu dekomprimieren. Nach der Verwendung von 7z es funktionierte gut.
In meinem Fall hatte ich eine externe definieren Variable mit entkam“, wie folgt:
#define DEFINE \"string\"
Es wurde wie folgt transkludiert in Code:
cout << DEFINE; // source code
cout << \"string\"; // source code during compilation