如何在C中发送ctrl + z

时间:2013-04-21 15:44:26

标签: c character

我正在和Arduino合作。

我想在C中的字符串后发送 Ctrl + z 。我试图截断^Z,但这不起作用。那怎么办?

3 个答案:

答案 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。