Czytam K & R Język programowania C i stały się zdezorientowane na putchar i getchar. Zrobiłem program, w którym wpisujesz 10 znaków i program wypisuje je na ekranie.Putchar i Getchar w C
#include <stdio.h>
int main()
{
int i;
int ch;
for(i = 0; i < 10; i++)
{
printf("Enter a single character >> ");
ch = getchar();
putchar(ch);
}
return 0;
}
spodziewałem się dostać wyjście takiego:
Enter a single character >> a
a
Enter a single character >> b
b
... i tak 10 razy, ale to jest wyjście mam: (I zatrzymał się po wpisaniu 2 znaków)
Enter a single character >> a
aEnter a single character >>
Enter a single character >> b
bEnter a single character >>
Enter a single character >>
Nie wiem, dlaczego mój znak wejściowy jest łączony ze stałym ciągiem i jako wynik.
Ponadto, nie jestem zbyt pewien, dlaczego int są używane do przechowywania znaków.
Dzięki za odpowiedź, ale kod nadal nie działa, "Wprowadź pojedynczy znak >>" jest nadal drukowany dwukrotnie, gdy nie powinno być. Jeśli spojrzysz na mój główny wpis i ostatni blok kodu, zobaczysz w drugiej linii, co mam na myśli, znak char został dołączony do napisu "Wpisz pojedynczy znak >>", a następnie "Wprowadź pojedynczy znak >> "ciąg jest natychmiast drukowany na ekranie ponownie. –
@CSStudent: Rozumiem. Sprawdź teraz moją odpowiedź :) – LihO