2008-11-21 20 views

Odpowiedz

60

tak, %c będzie wydrukować pojedynczą Znak:

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

również putchar/putc będzie działać zbyt. Od „człowiek 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). 

EDIT:

Należy również pamiętać, że jeśli masz ciąg do produkcji pojedynczego char, trzeba uzyskać znak w łańcuchu, który chcesz wstawić. Na przykład:

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

Używam MS C 6.0 i to nie działa. Nie daje też błędu. – Aydya

+0

Czy mógłbyś opublikować jakiś niedziałający kod przykładowy? Upewnij się, że "c" jest małe w "% c". –

+0

czy próbowałeś skopiować i wkleić mój przykład. % c powinno działać, biorąc pod uwagę, że parametr jest poprawnego typu (znak, a nie ciąg). –

14

Jak wspomniano w jednym z innych odpowiedzi, można użyć putc (int c, FILE * stream), putchar (int c) lub fputc (int c, FILE * strumień) w tym celu.

Ważne jest, aby pamiętać, że korzystanie z którejkolwiek z powyższych funkcji jest od niektórych znacznie szybsze niż przy użyciu funkcji parsowania formatów, takich jak printf.

Używanie printf przypomina strzelanie jednym pociskiem za pomocą karabinu maszynowego.

+4

'printf()' dla pojedynczego znaku, jest jak kupowanie książki, aby dostać kawałek papieru. – exebook

10

Należy uważać, różnica pomiędzy 'c' i "c"

'c' jest znak odpowiednie do formatowania z% C

"c" jest char * skierowaną do bloku pamięci o długości 2 (z zerowym terminator).

+2

Technicznie "c" to znak * o długości 4 (lub dowolnej wielkości wskaźnika), który wskazuje na blok pamięci z 2 znakami ("c" i "\ 0"). Ale to po prostu bycie pedantycznym. – paxdiablo

+0

Dodano krótką notatkę, że "c" jest wskaźnikiem. –

3
char variable = 'x'; // the variable is a char whose value is lowercase x 

printf("<%c>", variable); // print it with angle brackets around the character 
Powiązane problemy