Чтение текстовой строки с использованием заданного шаблона - PullRequest
2 голосов
/ 12 января 2011

Вопрос довольно прост, и я надеюсь, что ответ тоже прост :)

Допустим, вам дан шаблон, и вы должны прочитать текстовый файл, и каждая строка состоит из первой цифры, которая указывает количество «шаблонов» в строке и элемент шаблонов, разделенный на один пространство.

Например, учитывая шаблон

key value

допустимая строка текстового файла может быть

3 10 "apple" 15 "orange" 17 "melon"

Если фиксировано число N повторений, я бы использовал что-то вроде

fscanf(inFile,"%d %s",&n,str);

но есть ли функция, которая позволяет мне указывать количество повторений в качестве параметра, или я должен сканировать каждую строку и извлекать интересующие меня значения, используя substr и atoi?

«Тривиальный» способ очевиден, я ищу что-то более «профессиональное» и эффективное.

1 Ответ

2 голосов
/ 12 января 2011

Используйте fscanf () в цикле: сначала извлеките количество повторений N, затем зацикливайте N раз, извлекая свой шаблон.

Если вы ищете что-то более профессиональное или сложное, вы можете захотеть двигатьсяот стандартной библиотеки C до библиотеки регулярных выражений или синтаксического анализа, или что-то упомянутое здесь: http://www.and.org/vstr/comparison. Хотя я не буду так далеко, чтобы сказать, что вы не можете легко или хорошо выполнять обработку строк в C, этоне сильная сторона основного языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...