Czy podczas drukowania pojedynczego znaku w programie C należy użyć ciągu "% 1s" w ciągu znaków? Czy mogę użyć czegoś takiego jak "% c"?Wydruk pojedynczego znaku w C
Odpowiedz
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 */
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.
'printf()' dla pojedynczego znaku, jest jak kupowanie książki, aby dostać kawałek papieru. – exebook
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).
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
Dodano krótką notatkę, że "c" jest wskaźnikiem. –
char variable = 'x'; // the variable is a char whose value is lowercase x
printf("<%c>", variable); // print it with angle brackets around the character
Używam MS C 6.0 i to nie działa. Nie daje też błędu. – Aydya
Czy mógłbyś opublikować jakiś niedziałający kod przykładowy? Upewnij się, że "c" jest małe w "% c". –
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). –