奇怪的gcc错误迷路/丢失终止“C中的字符

时间:2010-05-27 19:45:11

标签: c gcc string-literals

我收到以下错误:

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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

我的问题是我使用WinZip来解压缩源代码。使用7z后,它运行良好。

答案 3 :(得分:0)

在我的情况下,我有一个带有转义的外部定义变量“,像这样:

#define DEFINE \"string\"

它被转换成这样的代码:

cout << DEFINE; // source code

cout << \"string\"; // source code during compilation