【发布时间】:2018-03-28 03:32:07
【问题描述】:
我正在解析具有以下格式的 C 程序文本行:
integer1 (string) SingleSymbol integer2 integer3 integer4
例如
1001 (abba) S 2000 3000 4000
所以我一一阅读,但是我只想提取几个字段,特别是string和integer2,我只设法想出了这个:
fscanf(fp, "%*d (%[^)])", comm)
是否可以在一个fscanf 表达式中匹配第四个字段?
【问题讨论】:
-
为什么不干脆
fscanf(fp,"%*s (%s) %*s %d %*s %*s",s,&i); -
请注意,您的问题似乎被截断了。
-
@MichaelWalz,你会建议什么?
-
@Mark 实际上忘记了我的评论,我删除了它。
-
@Jean-FrançoisFabre
fscanf(fp,"%*s (%s) ...将不起作用 -)被读入string。也许fscanf(fp,"%*s (%[^)]) %*s %d %*s %*s",s,&i);。这仍然是脆弱的。最好阅读该行,然后使用sscanf()