gpt4 book ai didi

似乎无法让 sscanf() 以我想要的方式工作

转载 作者:行者123 更新时间:2023-12-02 03:52:55 27 4
gpt4 key购买 nike

我正在为我正在制作的程序使用 AT 命令,但在使用 sscanf() 函数解析它们时遇到问题。

例如,如果我执行此命令:

"AT\r\r\nOK\r\n"

我想:* 在第一次调用时,仅获取“AT”部分,丢弃后面的“\r”字符,并知道到目前为止已读取了多少个字符。* 在第二次调用时,仅获取“OK”部分,丢弃“OK”字符串前后的“\r\n”字符,并知道到目前为止已读取了多少个字符。

我编写了以下 sscanf 函数调用:

index = 0;
sscanf(buffer + index, "%*[\r\n]%[^\r]\r%*[\n]%n", new_buffer, &count);
index += count;

为什么它不返回我请求的字符串?我做错了什么?

预先感谢您的帮助。

最佳答案

也许问题在于 sscanf 如何处理空白字符,例如回车符和换行符,以及您的期望。 sscanf 需要忽略(跳过)前面的空白。

另一个问题可能是回车永远不会到达您的缓冲区。需要 C 实现来将输入上的 \r\n 映射到 \n(对于文本流)。

关于似乎无法让 sscanf() 以我想要的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13726435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com