【发布时间】:2012-02-03 09:28:11
【问题描述】:
我必须将一个字符串分成几个。事实上,我需要的是从以下格式(i9、i9、i2)的文件中解析一些输入。
i9 表示十进制数: (5个空格)4567
所以我需要正确检索这些数字。宽度始终是固定的,因此每个数字都必须遵守这一点。 该格式的正确实例是
(5个空格)4567(6个空格)453(1个空格)2 或者 (5spaces)4567(6spaces)45322(在这种情况下,22 是 i2 的参数)
数字前的空格让我头疼,所以我想我可以将每个参数拆分为一个字符数组,然后将其转换为整数,因为 %d 说明符会忽略所有空格并且我不知道如何使用宽度以及忽略空格..(如果可以做到,我的意思是,将所有解析为整数请说出来!!)
如果没有.. 好吧,我需要帮助将每个字符串解析为子字符串,到目前为止我已经这样做了,但它不起作用:
while (fgets(buffer, 600, f)) {
sscanf(buffer, "%9[^\n]s %9[^\n]s %2[^\n]s", arg1, arg2, arg3);
....
}
请,任何帮助将不胜感激!!!
【问题讨论】:
-
C 还是 C++?选择你的命运! :)