使用给定模式读取文本行

时间:2011-01-12 16:55:32

标签: c

问题很简单,我希望答案也很简单:)

假设你有一个模式,你必须阅读一个文本文件,每一行由第一个数字组成,表示字符串中“模式”的数量,以及一个模式元素空间。

例如,给定模式

key value

文本文件的有效行可以是

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

如果重复次数N是固定的,我会使用类似

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

但是有一个函数允许我将重复次数作为参数,或者我应该使用substr和atoi来扫描每一行并提取我感兴趣的值吗?

“琐碎”的方式很明显,我正在寻找更“专业”和有效的东西。

1 个答案:

答案 0 :(得分:2)

在循环中使用fscanf():首先提取重复次数N,然后循环N次提取模式。

如果您正在寻找更专业或更复杂的东西,您可能希望远离标准C库,转向正则表达式或解析库,或者提及的事情:http://www.and.org/vstr/comparison。虽然我不会说你不能轻易地或在C语言中进行字符串处理,但它并不是核心语言的强项。