关于格式字符串
大家好,我写了测试程序,想通过函数locate_set_val把"resolution=1280x720\n"中的1280和720分别提取出来,但是不成功,请大家指点一下,谢谢!具体程序如下:
#include <stdio.h>#include <stdarg.h>#include <string.h>using namespace std;static int locate_set_val(char* dst, const char *item, const char * format, ...){ char* key = NULL, *end = NULL, val[20]; key = strstr(dst, item); if(NULL != key) { size_t offset = strlen(item) + 1; end = strchr(key + offset,'\n'); if(NULL != end) { size_t len = end - (key + offset); strncpy(val, key + offset, len); val[len] = '\0'; va_list args; va_start(args, format); len = sscanf(val, format, args); va_end(args); if(len > 0) { return 0; } } } return -1;}int main(){ char dst[] = "resolution=1280x720\n"; char item[] = "resolution"; unsigned int height = 0, width = 0; locate_set_val(dst, item, "%ux%u", &height, &width); return 0;}