如何使用sscanf读取括号之间的字符串?

时间:2012-03-30 11:21:30

标签: c linux gcc scanf

我有一些代码读取文本文件并扫描括号中的单词:'['和']'。

当我发现以'['我开头的字符串开头的行:

line[64] = "[word]";
sscanf(line, "[%s]", resource);

printf("%s\n",resource);

==> word]

但我总是以字符串+括号结束。如何格式化sscanf只读取末尾没有括号的字符串?

1 个答案:

答案 0 :(得分:7)

]读取的字符集中排除scanf()

char resource[100];
if (sscanf(line, "[%99[^]]]", resource) != 1) /* error */;

/* same as */
if (sscanf(line, "[" "%99[^]]" "]", resource) != 1) /* error */;
/*          literal   scanset   literal */