我有一个包含多行的文件。在文件解析中使用fgets()
我正在标记文件,如果标记包含.word
,我想将行的其余部分存储在c字符串中。
所以如果: array: .word 0:10
我想存储0:10在一个C字符串。
我做了以下内容:
if (strstr(token, ".word")) {
char data_line[MAX_LINE_LENGTH + 1];
int word_ret = fgets(data_line, MAX_LINE_LENGTH, fptr);
printf(".word is %s\n", data_line);
}
的问题,这是fgets()
抓住下一行。我将如何获取当前行的剩余部分?那可能吗?
谢谢
使用的'STR *'功能之一。 'strstr'在'token'中返回一个指向''.word''的指针,所以你可以使用该指针,跳过'“.word”'部分,并在那里寻找你想要的。 –
哇,完全一样的解决方案,我:) –
恐怕我们需要看到你是如何看你_current_线,以分配'token'。输入已经被这个点消耗了,你如何得到它取决于你如何保存它。顺便说一句,标记输入正是['flex'](http://en.wikipedia.org/wiki/Flex_lexical_analyser)被设计来完成的 - 当与['bison'](http://en.wikipedia。 org/wiki/GNU_bison),最终结果可能非常强大。 – sarnold