我有一个字符串,其编写如下:
^SYSINFO:2,3,0,3,1,,3
您会注意到该行中缺少一个数字,但情况可能并非总是如此。我使用sscanf扫描线并提取最后一个整数。
sscanf(response_c, "^SYSINFO:%*d,%*d,%*d,%*d,%*d,,%d", &networkattach_i);
如何补偿当前丢失的数字,但也可以写入?
以下不起作用:
sscanf(response_c, "^SYSINFO:%*d,%*d,%*d,%*d,%*d,%*d,%d", &networkattach_i);
答案 0 :(得分:2)
您可以尝试使用 getline 来解析字符串。一个例子是,
using namespace std;
string input = "^SYSINFO:2,3,0,3,1,,3";
istringstream ss(input);
string token;
getline(ss, token, ':'); //reads till SYSINFO
while(getline(ss, token, ',')) {
cout << token << '\n';
}