Różnica między scanf a gets

Spisu treści:

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

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

Wideo: Różnica między scanf a gets
Wideo: C Programming! scanf() VS fgets() VS gets() Which ones better? 2024, Lipiec
Anonim

Kluczowa różnica – scanf vs gets

Funkcja to zestaw instrukcji do wykonania określonego zadania. Bez pisania wszystkich instrukcji w tym samym programie można go podzielić na wiele funkcji. W programowaniu użytkownik może definiować własne funkcje. Istnieją również funkcje dostarczane przez języki programowania. Język C udostępnia szereg funkcji, dzięki czemu programista może z nich korzystać bezpośrednio bez 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 a gets jest to, że scanf kończy pobieranie danych wejściowych po napotkaniu białego znaku, nowej linii lub końca pliku (EOF), podczas gdy gets traktuje biały znak jako część ciągu wejściowego i kończy dane wejściowe po napotkaniu nowej linii lub EOF.

Co to jest scanf?

Funkcja scanf może odczytywać dane wejściowe z klawiatury i przechowywać je zgodnie z podanym specyfikatorem formatu. Odczytuje dane wejściowe do momentu napotkania spacji, nowej linii lub EOF. Składnia jest następująca.

scanf("ciąg formatu", lista adresów zmiennych);

Odnieś się do przykładu podanego poniżej, aby zrozumieć scanf.

Różnica między scanf a gets
Różnica między scanf a gets
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, dane wejściowe z klawiatury są liczbą całkowitą, więc specyfikatorem formatu jest %d. Jeśli pobiera wartość znakową, specyfikatorem formatu jest %c. W przypadku pobierania wartości zmiennoprzecinkowej specyfikator formatu to %f. Otrzymana wartość wejściowa powinna być przechowywana w zmiennej liczbowej. Dlatego adres zmiennej numer jest przekazywany do funkcji scanf. Teraz zmienna number zawiera wartość podaną przez użytkownika z klawiatury. Na koniec możemy wydrukować zmienną liczbową, aby sprawdzić wartość.

Możliwe jest również otrzymywanie więcej niż jednej wartości na raz.

Różnica między scanf a gets_Rysunek 02
Różnica między scanf a gets_Rysunek 02
Różnica między scanf a gets_Rysunek 02
Różnica między scanf a gets_Rysunek 02

Rysunek 02: skanowanie z wieloma wejściami

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

Co dostajesz?

Funkcja gets służy do odbierania danych wejściowych z klawiatury, aż do napotkania nowej linii lub EOF. Biała spacja jest uważana za część danych wejściowych. Składnia funkcji gets jest następująca.

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

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

Odnieś się do poniższego przykładu,

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

Rysunek 03: dostaje

Wejście jest odbierane przez funkcję gets i przechowywane w zmiennej word1. Jeśli programista użył scanf zamiast pobierać i wprowadzać ciąg, taki jak „hello world”, scanf odczyta ciąg jako dwa ciągi ze względu na białe znaki. Ale gets odczyta go jako jeden ciąg „hello world”.

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

  • Oba są funkcjami dostarczanymi przez język programowania C.
  • Oba powinny zawierać plik nagłówkowy stdio.h, aby używać tych funkcji.
  • Oba mogą być użyte do uzyskania danych wejściowych ze standardowego wejścia.

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

skanuj kontra pobiera

scanf to funkcja C, która odczytuje dane wejściowe ze standardowego wejścia, aż do napotkania spacji, nowej linii lub EOF. gets to funkcja C, która odczytuje wejście ze standardowego wejścia aż do napotkania znaku nowej linii lub znaku EOF. Uważa białe znaki za część danych wejściowych.
Składnia
Funkcja scanf pobiera ciąg formatujący i listę adresów zmiennych. np. scanf(„%d”, &number); Funkcja gets pobiera nazwę zmiennej do przechowywania otrzymanej wartości. Np. pobiera(nazwa);
Elastyczność
scanf może odczytywać wiele wartości różnych typów danych. gets() otrzyma tylko dane ciągu znaków.

Podsumowanie – scanf vs gets

scanf i gets to funkcje dostarczane przez język programowania C. Użytkownik nie musi implementować 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łego znaku, nowej linii lub End Of File (EOF) i gets traktuje biały znak jako część ciągu wejściowego i kończy dane wejściowe po napotkaniu nowej linii lub EOF. Używanie scanf lub gets zależy od sposobu odbierania danych wejściowych użytkownika ze standardowego wejścia, którym przez większość czasu jest klawiatura. scanf jest bardziej elastyczny niż gets.

Pobierz wersję PDF scanf vs gets

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 scanf a gets

Zalecana: