C或C ++中是否有任何函数可以执行snprintf的反转,例如
char buffer[256]
snprintf( buffer, 256, "Number:%i", 10);
// Buffer now contains "Number:10"
int i;
inverse_snprintf(buffer,"Number:%i", &i);
// i now contains 10
我自己可以编写一个满足此要求的函数,但标准库中是否已有一个函数?
答案 0 :(得分:13)
是的,有sscanf()
。它返回与输入成功匹配的标记数,因此您可以检查返回值以查看它在输入字符串中的位置。
if (sscanf(buffer, "Number:%i", &i) == 1) {
/* The number was successfully parsed */
}