【发布时间】:2012-01-12 21:09:02
【问题描述】:
很抱歉这个简单的问题,但我正在尝试找到一种优雅的方法来避免我的程序看到像“14asdf”这样的输入并像 14 一样接受它。
if (sscanf(sInput, "%d", &iAssignmentMarks[0]) != 0)
有没有一种简单的方法可以防止sscanf 从这样的错位字符串中提取整数?
【问题讨论】:
-
你的意思是有没有办法让 sscanf 只提取字符串中的数字字符?您可能还想澄清您是否希望“53sd2”返回 53 或 532。
-
对不起,我应该更清楚一点,我希望“14asdf”被识别为无效输入,“53sd2”也是如此。我只想识别没有非数字字符接触它们的独立整数(至少以空格分隔)。
-
这在 C++ 中很容易。也许应该从这个问题中删除“c++”标签? @AdamWathan,您只想要 C 语言中的答案吗?
标签: c