【发布时间】:2012-12-04 11:15:55
【问题描述】:
我需要在c中解析一个格式为“foo=%d”的字符串,我需要检查格式是否正确并读取int值。
我的初始代码是:
int foo_set = 0;
int foo;
if (sscanf(text, "foo=%d", &foo) == 1)
foo_set = 1;
但是代码应该拒绝诸如“foo=5$%£”之类的输入。 这段代码能用吗?
int foo_set = 0;
int foo;
char control;
if (sscanf(text, "foo=%d%c", &foo, &control) == 1)
foo_set = 1;
使用control 字符代码检查没有额外的输入。
有没有更好/更正确的方法来做到这一点?
谢谢
【问题讨论】:
-
Would this code work?。为什么不跑过去看看?