Как я могу использовать sscanf для чтения строки в скобках? - PullRequest
0 голосов
/ 30 марта 2012

У меня есть код для чтения текстового файла и сканирования слов в скобках: '[' и ']'.

Когда я нахожу строку, начинающуюся с '[', я читаю строку с:

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

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

==> word]

но я всегда получаю строку + скобку. Как я могу отформатировать sscanf только для чтения строки без скобки в конце?

1 Ответ

7 голосов
/ 30 марта 2012

Исключить ] из набора символов, который scanf() читает:

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

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