Comment envoyer ctrl + z en C

Je travaille avec Arduino.

Je veux envoyer Ctrl + z après une chaîne en C. J’ai essayé de tronquer ^Z mais cela n’a pas fonctionné. Alors, comment faire ça?

Ctrl + Z = 26 = '\032' = '\x1A' . Chacune des séquences d’échappement de barre oblique inverse peut être écrite dans un littéral de chaîne (mais soyez prudent avec l’échappement hexadécimal, comme s’il était suivi d’un chiffre ou d’un caractère AF ou af, qui sera également compté comme une partie de l’échappement hexadécimale, ce qui n’est pas le cas. tu veux).

Cependant, si vous simulez une entrée de terminal sur une machine Windows (vous voulez donc que le caractère soit traité comme une indication EOF), vous devez réfléchir à nouveau. Ce n’est pas comme ça que ça marche.

Cela peut faire ou ne pas faire ce que vous voulez avec Arduino, non plus; cela dépend en partie de ce que vous pensez qu’il va faire. Cela dépend également de savoir si la chaîne en entrée sera traitée comme si elle provenait d’un terminal.

Je l’ai piraté car j’avais besoin de la même chose

 #include  #define CTRL(x) (#x[0]-'a'+1) int main (void) { printf("hello"); printf("%c", CTRL(n)); printf("%c", CTRL(z)); } 

espérons que cela aide 8)

Je suppose que par “tronquer” vous vouliez réellement append.

En ASCII, CTRL + z est le sharepoint code 26, vous pouvez donc simplement l’append en tant que caractère, par exemple:

 #define CTRL_Z 26 char buffer[100]; sprintf (buffer, "This is my message%c", CTRL_Z); 

La méthode sprintf n’est qu’un des moyens de le faire, mais elles dépendent toutes essentiellement de la mise d’un octet à la fin de la valeur 26.