我收到以下错误:
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进行编译时的输出,如果我没有说清楚的话。答案 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