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

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top