我正在和Arduino合作。
我想在C中的字符串后发送 Ctrl + z 。我试图截断^Z
,但这不起作用。那怎么办?
答案 0 :(得分:12)
Ctrl + Z = 26 = '\032'
= '\x1A'
。反斜杠转义序列中的任何一个都可以用字符串文字写入(但要小心十六进制转义,就好像它后跟一个数字或AF或af,这也将被算作十六进制转义的一部分,这不是什么你想要的。)
但是,如果您要在Windows计算机上模拟终端输入(因此您希望将该字符视为EOF指示),则需要再次考虑。这不是它的工作原理。
它可能会也可能不会与Arduino一起做你想做的事情;在某种程度上,这取决于你认为它将要做什么。它还取决于输入字符串是否会被视为来自终端。
答案 1 :(得分:3)
因为我需要类似的
,我把它搞砸了#include <stdio.h>
#define CTRL(x) (#x[0]-'a'+1)
int main (void)
{
printf("hello");
printf("%c", CTRL(n));
printf("%c", CTRL(z));
}
希望它有帮助8)
答案 2 :(得分:1)
我假设通过&#34;截断&#34;你实际上是想附加。
在ASCII中, CTRL + z 是代码点26,因此您可以简单地将其附加为字符,例如:
#define CTRL_Z 26
char buffer[100];
sprintf (buffer, "This is my message%c", CTRL_Z);
sprintf
方法只是一个的方法,但它们基本上都取决于你将一个字节放在最后,值为26。