我想在C中使用sscanf从字符串中获取一些值。但是,如果字符串的值比我想要的更多,我需要它来引发错误。即。如果我想要一个整数,“2”应该可以,但“2 5”应该会崩溃。C:sscanf分配抑制和返回值
现在使用上sscanf的返回值,像这样:
if (sscanf(mystring, "%d %*s", &num) == 1)
不起作用,因为它会返回1,即使字符串是更长的时间。我可以这样做:
char tmpString [100];
if (sscanf(mystring, "%d %s", &num, tmpString) == 1)
它工作正常,但它不是特别好。有另一种方法吗?我可以使用分配抑制并仍然获得我想要的返回值吗?
编辑 这是我所使用的代码:
char c; // This is a global variable, just gets used over and over.
sscanf(mystring, "%d%c", &num, &c);
if (c == '\n') {
我通常这样做:'char c; if(sscanf(mystring,“%d%c”,#num,&char)== 1)' – 2012-04-14 04:26:42
如果你只是想让它崩溃,你可以使用: 'sscanf(mystring,“%d%d”,&num1 ,&num2);'(= – dcow 2012-04-14 04:26:45
)感谢Jared。我的猜测与我的代码相同,但只使用了一个字符更有效。 – morgoe 2012-04-14 04:35:57