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