警告:缺少终止 " 字符 [默认启用]
warning: missing terminating " character [enabled by default]
我在下面收到这个奇怪的错误
json.c:81:19: warning: missing terminating " character [enabled by default]
json.c:81:3: error: missing terminating " character
json.c:82:32: error: expected ‘,’ or ‘;’ before ‘:’ token
json.c:90:22: warning: missing terminating " character [enabled by default]
json.c:90:21: error: missing terminating " character
代码:
int main()
{
char * string = "{
"sender" : "joys of programming",
"receiver": [ "123",
"345",
"654",
"432"
]
}";
printf("JSON string: %sn", string);
json_object * jobj = json_tokener_parse(string);
json_parse(jobj);
return 0;
}
我了解到错误与 char * string
行有关。但是不知道怎么解决。
在引号内使用引号时需要使用转义符。
char * string = "{ "
"\"sender\" : \"joys of programming\","
"\"receiver\": [ \"123\","
"\"345\","
"\"654\","
"\"432\""
"]"
"}";
这样就可以了。
你必须:
- 转义
"
字符,因为它是一个特殊的字符,用于定义
C 字符串文字。
- 对于多行字符串,您必须将每一行定义为单个 C 字符串,对每一行使用
""
所以,结果代码是
char * string = "{"
"\"sender\" : \"joys of programming\","
"\"receiver\": [ \"123\","
"\"345\","
"\"654\","
"\"432\""
"]"
"}";
我在下面收到这个奇怪的错误
json.c:81:19: warning: missing terminating " character [enabled by default]
json.c:81:3: error: missing terminating " character
json.c:82:32: error: expected ‘,’ or ‘;’ before ‘:’ token
json.c:90:22: warning: missing terminating " character [enabled by default]
json.c:90:21: error: missing terminating " character
代码:
int main()
{
char * string = "{
"sender" : "joys of programming",
"receiver": [ "123",
"345",
"654",
"432"
]
}";
printf("JSON string: %sn", string);
json_object * jobj = json_tokener_parse(string);
json_parse(jobj);
return 0;
}
我了解到错误与 char * string
行有关。但是不知道怎么解决。
在引号内使用引号时需要使用转义符。
char * string = "{ "
"\"sender\" : \"joys of programming\","
"\"receiver\": [ \"123\","
"\"345\","
"\"654\","
"\"432\""
"]"
"}";
这样就可以了。
你必须:
- 转义
"
字符,因为它是一个特殊的字符,用于定义 C 字符串文字。 - 对于多行字符串,您必须将每一行定义为单个 C 字符串,对每一行使用
""
所以,结果代码是
char * string = "{"
"\"sender\" : \"joys of programming\","
"\"receiver\": [ \"123\","
"\"345\","
"\"654\","
"\"432\""
"]"
"}";