Kluczowa różnica – getc vs getchar
Funkcja to zestaw instrukcji do wykonania określonego zadania. W programowaniu użytkownik może definiować swoje funkcje lub korzystać z funkcji udostępnianych przez język programowania. Język C posiada szereg funkcji, dzięki czemu programista może wykorzystać je bezpośrednio w kodowaniu bez implementowania ich od początku. Istnieje kilka funkcji związanych z odczytywaniem znaków. Dwa z nich to getc i getchar. Kluczową różnicą między getc i getchar jest to, że getc służy do odczytywania znaku ze strumienia wejściowego, takiego jak plik lub standardowe wejście, podczas gdy getchar do odczytywania znaku ze standardowego wejścia. W tym artykule omówiono różnicę między tymi dwiema funkcjami.
Co to jest getc?
Jest to funkcja używana do odczytywania znaku ze strumienia wejściowego, takiego jak plik lub klawiatura. W przypadku powodzenia zwraca odpowiednią wartość całkowitą. Składnia getc to int getc(Plik strumień). Zobacz poniższy przykład. Załóżmy, że test.txt to zwykły plik tekstowy w katalogu projektu. Ten plik ma dwa znaki, które są „a” i „b”.
Rysunek 01: Odczytywanie znaków pliku za pomocą getc
Zgodnie z powyższym programem plik testowy jest otwierany w trybie odczytu. Następnie pierwszy znak jest odczytywany za pomocą funkcji getc i zapisywany w zmiennej c1. Wyjście instrukcji printf c1. Następnie drugi znak jest odczytywany i przechowywany w zmiennej c2. Wyjście instrukcji printf c2. Dlatego funkcja getc służy do odczytywania znaku ze strumienia, takiego jak plik.
Rysunek 02: Odczytywanie znaków w pliku za pomocą getc i loop.
Może być używany z pętlą do odczytywania wszystkich znaków, pojedynczo, aż do osiągnięcia końca pliku (EOF) jak powyżej. Na ekranie zostaną wyświetlone dwa znaki z pliku test.txt.
Co to jest getchar()?
getchar() służy do odczytywania znaku tylko ze standardowego wejścia. Czeka na naciśnięcie klawisza enter i odczyt można zobaczyć na ekranie. Jego składnia jest podobna do int getchar(void);
Funkcja getchar nie wymaga argumentu takiego jak getc. Domyślnie getchar działa na standardowym wejściu. Dlatego nie jest konieczne przekazywanie żadnego argumentu do funkcji getchar. Zapoznaj się z poniższym przykładem.
Rysunek 03: getchar
Kiedy użytkownik wprowadzi znak wejściowy, jest on wyświetlany na ekranie i czeka na naciśnięcie klawisza Enter. Po naciśnięciu klawisza enter wyjście jest drukowane na ekranie dzięki funkcji printf.
Tę samą funkcjonalność getchar można uzyskać za pomocą funkcji getc w następujący sposób.
Rysunek 04: Funkcjonalność getchar za pomocą getc
Zgodnie z powyższym programem, funkcja getc służy do odczytywania znaku. Jest przechowywany w zmiennej „ch”. Funkcja getc argumentuje, że stdin wskazuje, że dane wejściowe są pobierane ze standardowego wejścia, którym jest klawiatura. Użytkownik może podać znak i nacisnąć klawisz enter. Następnie ten znak zostanie wydrukowany na ekranie za pomocą funkcji printf.
Jakie są podobieństwa między getc a getchar?
- Oba są funkcjami dostarczanymi przez język programowania C.
- Obie funkcje zwracają koniec pliku (EOF) po zakończeniu strumienia.
Jaka jest różnica między getc a getchar?
getc kontra getchar |
|
getc to funkcja C, która odczytuje znak ze strumienia wejściowego, takiego jak strumień pliku lub standardowe wejście. | getchar to funkcja C, która odczytuje znak tylko ze standardowego strumienia wejściowego (stdin), którym jest klawiatura. |
Składnia | |
składnia getc jest podobna do int getc(Plik strumień). | składnia getchar jest podobna do int getchar(void); |
Podsumowanie – getc vs getchar
Język programowania C zapewnia wiele funkcji. Programiści mogą korzystać z tych funkcji, nie wdrażając ich od początku. Dwie z takich funkcji to getc i getchar. Różnica między getc i getchar polega na tym, że getc służy do odczytywania znaku ze strumienia wejściowego, takiego jak plik lub standardowe wejście, a getchar do odczytywania znaku ze standardowego wejścia. Obaj używają do odczytywania znaku, ale ich funkcje są różne.
Pobierz wersję PDF getc vs getchar
Możesz pobrać wersję PDF tego artykułu i używać jej do celów offline zgodnie z notatką cytowania. Proszę pobrać wersję PDF tutaj Różnica między getc a getchar