首页 > 解决方案 > 为什么使用 \"%s\" 时 sprintf 不起作用?

问题描述

我将 sprintf 与 IMXRT1021 NXP 微控制器一起使用,但没有获得所需的输出。

库:Redlib (nohost-nf)

我已经尝试了两种方法,但结果是一样的。

sprintf(at,"AT=\x22%s\x22,\x22%s\x22\r\n","abcdef","123456");

sprintf(at,"AT=\"%s\",\"%s\"\r\n","abcdef","123456");

预期输出:

AT="abcdef","123456"\r\n

实际输出:

AT=\"abcdef\",\"123456\"\r\n

标签: c

解决方案


这取决于你在说什么。

如果您要将其输出到终端,您将看到的字符串就是您所期望的:

AT="abcdef","123456"   # plus newline etc.

但是,该字符串的 C表示形式是:

"AT=\"abcdef\",\"123456\"\r\n"

推荐阅读