我正在尝试使用 sprintf 同时发送两个命令。命令应使用 0x0A (LF) 分隔。我想我可以使用两个斜杠输入特殊字符,所以我写:
sprintf(tmpstr,"VSET1:%ld.%3.3d\\x0AVSET2:%ld.%3.3d",mv/1000, AbsVal((int)mv%1000), mv / 1000, AbsVal((int)mv % 1000));
似乎只识别第二个命令(VSET2)。
我做错了什么?
最佳答案
在格式字符串中使用\n
。另外,请使用单个反斜杠而不是 \\
。
如果要将缓冲区写入文件,请以二进制模式打开该文件。
无论您使用\n
还是\x0A
,您都必须以二进制模式打开文件以避免不可移植的翻译。
参见Escape sequences .
关于c++:如何将换行插入到 sprintf 连接中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651430/