我正在尝试在 C 中使用 sscanf 从字符串中获取一些值。但是,如果字符串的值比我想要的多,我需要它来引发错误。IE。如果我想要一个整数,“2”应该没问题,但“2 5”应该崩溃。
现在使用 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') {