我有一个字符串"h264:640x480:4:30000"
.我使用sscanf函数如下.
char res[16] = { 0 }; int quality = 0; int fps = 0; sscanf(temp1, "h264:%s:%d:%d", res, &quality, &fps);
执行此功能时.我期待"res"中的"640x480","质量"中的"4"和"fps"中的"3000".但它将整个字符串复制到"res"中,其他两个变量值保持为0.
这个问题的正确格式是什么.
使用以下sscanf()
字符串格式
sscanf(temp1, "h264:%[^:]:%d:%d", res, &quality, &fps);
%s
将捕获字符串中的所有字符,直到它找到一个空格或到达字符串的末尾.所以%s
不是一个好选择.
%[^:]
将捕获字符串中的所有字符,直到它找到':'
charachter或到达字符串的末尾