#include <stdio.h>
int main()
{
char * msg = "Internal power 10. power sufficient. total count 10";
char * temp = "Internal power %d. power %s. total count %d";
int v1, v2, ret;
char str1[64];
ret = sscanf(msg, temp, &v1, str1, &v2);
printf("%d\n", ret);
printf("%d %s %d ", v1, str1 , v2);
return 0;
}
我想知道爲什麼sscanf
失敗,爲什麼它不能夠檢索最後一個變量?sscanf的行爲是不同的
由於'%s'讀取''.'中的'.',所以格式字符串中的點的文字匹配失敗。您需要使用掃描集'%[^。 ]'只讀'足夠'的數據。 –
@JonathanLeffler嗨,我明白了,但是可以幫助我知道如何使用sscanf()和scan set []實現它,並且限制是我無法更改傳入消息及其模板。 – user7375520
如果你不能修改'模板'(我認爲你的意思是格式字符串),那麼你就卡住了。你有什麼不會工作;有些事情必須改變才能使其發揮作用。也許你需要澄清你在評論中提出的問題。下面有個很好的答案。 –