我有一个用 C 语言编写的应用程序,它使用 AT 命令从调制解调器读取文本消息。来自调制解调器的典型 AT 响应如下所示:
+CMGL: 1,"REC READ","+31612123738",,"08/12/22,11:37:52+04"
该代码当前设置为仅从该行检索 id,这是第一个数字,它使用以下代码执行此操作:
sscanf(line, "+CMGL: %d,", &entry);
这里,“line”是一个字符数组,包含来自调制解调器的一行,“entry”是一个整数,其中存储了 id。我尝试像这样扩展此代码:
sscanf(line, "+CMGL: %d,\"%*s\",\"%s\",", &entry, phonenr);
我想我会使用 %*s 扫描第一对引号中的文本并跳过它,然后将下一对引号(电话号码)中的文本读入 phonenr 字符数组。
这不起作用(%*s 显然读取“REC”而下一个 %s 没有读取任何内容)。
一个额外的挑战是文本不限于“REC READ”,它实际上可以是很多东西,也可以是没有空格的文本。