【发布时间】:2016-07-27 07:20:48
【问题描述】:
首先,我想明确表示我是初学者,这可能是一个愚蠢的问题,而且我可能做错了什么。
我想从字符串中读取字符,直到找到 , 并将它们存储在另一个字符串中。我也想知道读了多少字。这就是我对sscanf 所做的事情:
sscanf(str, "%[^,]s %n ", newstr, &number);
当我尝试打印数字时,无论我的输入如何,它都会打印0,即使newstr 中存储了多个字符。
问题似乎出在[^,] 子说明符中,因为%n 在没有它的情况下可以正常工作。
【问题讨论】:
-
你编译时有警告吗?
number的类型是什么? -
我确实在编译时出现了警告。数字是一个整数。
-
从格式中删除
s。不属于%[] -
当然
s的存在只是因为您认为您正在阅读s字符串。但是%[^,]已经读取了一个字符串。
标签: c scanf stdio format-specifiers