我正在尝试使用 sscanf 来解析多个字符串字段。这是一个示例代码片段:package mainimport "fmt"func main() { var name, currency string _, err := fmt.Sscanf("transaction benson: dollars", "transaction %s: %s", &name, ¤cy) fmt.Println(err, name, currency)}输出是input does not match format benson: Program exited.
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
%s
贪婪并吞噬到下一个空间,这意味着它会吃掉冒号。处理完之后%s
,它会尝试扫描冒号,但是等等,它已经被消耗掉了,下一个字符实际上是一个空格,而不是一个冒号!所以它失败了。
在 C 中,您可以通过使用%[^:]
而不是来解决这个问题%s
,但 Go 似乎不支持这一点。您可能需要找到某种方法来解析不带Sscanf
.
- 1 回答
- 0 关注
- 282 浏览
添加回答
举报
0/150
提交
取消