1

我收到以下错误:

error: missing terminating " character

error: stray `\' in program

在这行 C 代码中:

 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”是一个整数变量。

我已经经历了很多次,但完全找不到解决方案。

编辑:如果我没有说清楚,错误是使用 gcc 编译时的输出。

4

4 回答 4

3

在 C 中的双引号字符串中,我认为这\'没有任何意义。看起来你的反斜杠是为了保护shell中的单引号,这意味着它们应该在字符串中使用双反斜杠:remote_uid=\\'%d\\'

于 2010-05-27T19:48:10.463 回答
1

好吧,您不需要转义字符串中的单引号(例如\'应该只是'),但我不确定这会导致您看到的错误。

于 2010-05-27T19:48:21.807 回答
0

我有同样的问题,试图做基本相同的事情。

我的问题是我使用 WinZip 解压缩源。使用 7z 后,它工作正常。

于 2013-05-06T20:28:09.297 回答
0

就我而言,我有一个带有转义“的外部定义变量,如下所示:

#define DEFINE \"string\"

它被嵌入到这样的代码中:

cout << DEFINE; // source code

cout << \"string\"; // source code during compilation
于 2017-06-06T08:26:32.913 回答