Różnica Między Scanf A Gets

Spisu treści:

Różnica Między Scanf A Gets
Różnica Między Scanf A Gets
Anonim

Kluczowa różnica - Scanf vs Gets

Funkcja to zestaw instrukcji do wykonania określonego zadania. Bez zapisywania wszystkich instrukcji w tym samym programie można go podzielić na wiele funkcji. Podczas programowania użytkownik może definiować własne funkcje. Istnieją również funkcje dostarczane przez języki programowania. Język C udostępnia szereg funkcji, więc programista może z nich korzystać bezpośrednio, bez konieczności implementowania ich od początku. Dwie takie funkcje dostarczane przez język C to scanf i gets. W tym artykule omówiono różnicę między tymi dwiema funkcjami. Kluczową różnicą między scanf i gets jest to, że scanf kończy przyjmowanie danych wejściowych po napotkaniu białej spacji, nowej linii lub końca pliku (EOF), podczas gdy gets traktuje białą spację jako część ciągu wejściowego i kończy wejście po napotkaniu znaku nowej linii lub EOF.

ZAWARTOŚĆ

1. Przegląd i kluczowe różnice

2. Czym jest scanf

3. Co daje

4. Podobieństwa między scanf a gets

5. Porównanie bezpośrednie - scanf vs gets w formie tabelarycznej

6. Podsumowanie

Co to jest Scanf?

Funkcja scanf może czytać dane wejściowe z klawiatury i zapisywać je zgodnie z podanym specyfikatorem formatu. Czyta dane wejściowe, aż napotka biały znak, nową linię lub EOF. Składnia jest następująca.

scanf („ciąg formatujący”, lista adresów zmiennych);

Zapoznaj się z przykładem podanym poniżej, aby zrozumieć scanf.

Różnica między scanf a gets
Różnica między scanf a gets

Rysunek 01: scanf z jednym wejściem

Zgodnie z powyższym programem, wejście pobierane z klawiatury jest liczbą całkowitą, więc specyfikatorem formatu jest% d. Jeśli pobiera wartość znakową, specyfikatorem formatu jest% c. W przypadku pobierania wartości zmiennoprzecinkowej specyfikatorem formatu jest% f. Otrzymaną wartość wejściową należy zapisać w zmiennej liczbowej. Dlatego adres zmiennej o numerze jest przekazywany do funkcji scanf. Teraz zmienna liczbowa zawiera wartość podaną przez użytkownika z klawiatury. Na koniec możemy wydrukować zmienną liczbową, aby sprawdzić wartość.

Możliwe jest również jednoczesne otrzymanie więcej niż jednej wartości.

Różnica między scanf i gets Figure 02
Różnica między scanf i gets Figure 02

Rysunek 02: scanf z wieloma wejściami

Odebrane dane wejściowe są przechowywane w zmiennej numer1 i numer2. Wartości można sprawdzić za pomocą printf.

Co dostaje?

Funkcja gets używa do odbierania danych wejściowych z klawiatury aż do napotkania znaku nowej linii lub EOF. Białe znaki są traktowane jako część danych wejściowych. Składnia funkcji gets jest następująca.

gets („gdzie przechowywać ciąg znaków”);

Jeśli podczas odbierania ciągu wystąpi błąd, funkcja gets zwróci wartość null.

Zobacz poniższy przykład,

Kluczowa różnica między scanf a gets
Kluczowa różnica między scanf a gets

Rysunek 03: pobiera

Dane wejściowe są odbierane przez funkcję gets i przechowywane w zmiennej word1. Jeśli programista użył scanf zamiast get i wprowadził łańcuch, taki jak „hello world”, scanf odczyta ten ciąg jako dwa ciągi ze względu na białe znaki. Ale gets odczyta to jako jeden ciąg „hello world”.

Jakie są podobieństwa między scanf a gets?

  • Obie są funkcjami zapewnianymi przez język programowania C.
  • Aby korzystać z tych funkcji, oba powinny zawierać plik nagłówkowy stdio.h.
  • Oba mogą służyć do pobierania danych ze standardowego wejścia.

Jaka jest różnica między scanf a gets?

Porównaj środek artykułu przed tabelą

scanf vs gets

scanf to funkcja C do odczytu danych wejściowych ze standardowego wejścia, aż do napotkania białych znaków, nowej linii lub EOF. gets to funkcja C do odczytu danych wejściowych ze standardowego wejścia, aż do napotkania znaku nowej linii lub EOF. Traktuje białe znaki jako część danych wejściowych.
Składnia
Funkcja scanf przyjmuje łańcuch formatu i listę adresów zmiennych. np. scanf („% d”, & numer); Funkcja gets pobiera nazwę zmiennej do przechowywania otrzymanej wartości. Np. Dostaje (imię);
Elastyczność
scanf może odczytywać wiele wartości różnych typów danych. gets () otrzyma tylko dane w postaci ciągu znaków.

Podsumowanie - Scanf vs Gets

scanf i gets to funkcje zapewniane przez język programowania C. Użytkownik nie musi wdrażać tych funkcji od początku. Mogą bezpośrednio używać ich w swoich programach. Różnica między scanf i gets polega na tym, że scanf kończy pobieranie danych wejściowych po napotkaniu białej spacji, nowej linii lub końca pliku (EOF) i pobiera znak spacji jako część ciągu wejściowego i kończy wejście po napotkaniu znaku nowej linii lub EOF. Korzystanie z funkcji scanf lub gets zależy od sposobu odbierania danych wejściowych użytkownika ze standardowego wejścia, którym jest najczęściej klawiatura. scanf jest bardziej elastyczny niż dostaje.

Pobierz wersję PDF programu scanf vs gets

Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytowania. Pobierz wersję PDF tutaj Różnica między scanf a gets

Zalecane: