web-dev-qa-db-fra.com

Sortie d'un seul caractère en C

Lors de l'impression d'un seul caractère dans un programme C, dois-je utiliser "% 1s" dans la chaîne de format? Puis-je utiliser quelque chose comme "% c"?

34
Aydya

oui, %c imprimera un seul caractère:

printf("%c", 'h');

aussi, putchar/putc fonctionnera aussi. De "l'homme putchar":

#include <stdio.h>

int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);

* fputc() writes the character c, cast to an unsigned char, to stream.
* putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once.
* putchar(c); is equivalent to putc(c,stdout).

MODIFIER:

Notez également que si vous avez une chaîne, pour générer un seul caractère, vous devez obtenir le caractère dans la chaîne que vous souhaitez générer. Par exemple:

const char *h = "hello world";
printf("%c\n", h[4]); /* outputs an 'o' character */
69
Evan Teran

Comme mentionné dans l'une des autres réponses, vous pouvez utiliser putc (flux int c, FILE *), putchar (int c) ou fputc (int c, FILE * flux) pour Cet objectif.

Ce qui est important à noter est que l’utilisation de l’une des fonctions ci-dessus est nettement plus rapide que celle de l’utilisation de fonctions d’analyse de format telles que printf.

Utiliser printf revient à utiliser une mitrailleuse pour tirer une balle.

15
Roalt

Attention à la différence entre 'c' et "c"

'c' est un caractère approprié pour le formatage avec% c

"c" est un caractère * pointant vers un bloc de mémoire d'une longueur de 2 (avec le terminateur nul).

10
Douglas Leeder
char variable = 'x';  // the variable is a char whose value is lowercase x

printf("<%c>", variable); // print it with angle brackets around the character
3
EvilTeach

Le moyen le plus simple de générer un seul caractère consiste à utiliser simplement la fonction putchar.

0
Broman