У меня есть собственный архив, структурированный следующим образом:
%list% name1 name2 name3 %list%
%dirs% archive directories %dirs%
%content% name1 path1 content of file1 %content%
%content% name2 path2 content of file2 %content%
%content% name3 path3 content of file3 %content%
%list% содержит имена файлов в архиве
%dirs% содержит имена каталогов
%content% перечисляет содержимое файлов.
Поскольку мне нужно распечатать содержимое указанного файла, я хочу прочитать этот архив слово за словом, чтобы определить %content%
tag и имя файла.
Я знаю о существовании fscanf()
, но, похоже, он работает эффективно, только если вы знать шаблон архива.
Есть ли библиотека или команда C, например ifstream
для C++, которая позволяет мне читать слово за словом?
Спасибо
fgets
иstrtok
? - person Some programmer dude   schedule 06.05.2013fscanf
код и рассказать, что в нем не так... Сейчас непонятно, что в нем такого неэффективного. - person hyde   schedule 06.05.2013fgetc
, пока не появится символ пробела (например,\r
\n
\t
или пробел). Затем проанализируйте слово, которое вы только что прочитали. Без дополнительной информации трудно помочь дальше. - person RageD   schedule 06.05.2013fscanf
(хотяfgets
может быть проще). Однако, как бы мне не хотелось это предлагать, вы можете захотеть реструктурировать свой архив с помощью XML и использовать существующие библиотеки XML (expat, libxml и т. д.) для доступа к нему и его изменения. Таким образом, вам не нужно беспокоиться о разборе тегов, только о содержании. - person John Bode   schedule 06.05.2013tar
, но это было слишком грязно для моих знаний C. Таким образом, я попытался сделать (возможно, чересчур) простой архив. - person Andrea Gottardi   schedule 07.05.2013