Poczekaj na dane wprowadzone przez użytkownika: C Język

Wait User Input C Language



W języku programowania C istnieje kilka funkcji wejściowych. Korzystając z tych funkcji, możemy czekać na dane wejściowe użytkownika. W tym samouczku omówimy szczegółowo funkcje wejściowe.

Ciąg formatu

Ciąg formatujący to format wprowadzanych danych. Ten format zaczyna się od znaku %, po którym następuje specyfikator formatu. Specyfikator formatu to specyficzny znak, który jest używany dla jakiego typu danych są odczytywane.







arg1, arg2, arg3… to adresy zmiennych, w których będą przechowywane wprowadzone dane.



scanf() Funkcja

Składnia: int scanf (ciąg formatu, arg1, arg2, arg3…)



Niektóre z często używanych specyfikatorów są następujące:





  • D – Używany do wartości całkowitych.
  • F – Używany do liczby zmiennoprzecinkowej.
  • C – Używany dla wartości jednoznakowej.
  • s – Używany do strun.

Korzystanie z pojedynczego scanf() funkcji, jedno lub wiele danych wejściowych może zostać pobranych od użytkownika.

ten scanf() funkcja pobiera dane wejściowe ze standardowego wejścia (klawiatury) i przechowuje wartość w zmiennej. Funkcja czeka na wejście użytkownika do momentu naciśnięcia klawisza enter. Wprowadzona wartość jest przechowywana w buforze. Po naciśnięciu klawisza enter, scanf() funkcja zaczyna czytać.



Przykład 1: Wejście liczb całkowitych

//Przykład1.c
#włączać

intGłówny(){

inti;
printf ('Wprowadź pierwszą liczbę całkowitą: ');
scanf ('%D', &i);
printf ('Wpisałeś: %d ',i);

printf ('Wprowadź drugą liczbę całkowitą: ');
scanf ('%D', &i);
printf ('Wpisałeś: %d ',i);

powrót 0;
}

W przykładzie 1.c widzieliśmy to, gdy wprowadziliśmy wartości całkowite i wcisnęliśmy klawisz Enter. ten scanf() funkcja pobiera wartość i zapisuje ją w zmiennej. Jeśli wprowadzimy wartości oddzielone spacją, funkcja powróci po napotkaniu spacji, ale wartości po spacji pozostają w buforze wejściowym. Dlatego drugi scanf() funkcja nie będzie czekać na dane wejściowe użytkownika, zamiast tego pobiera dane z bufora.

Przykład 2: Wprowadzanie pojedynczych znaków

//Przykład2.c
#włączać

intGłówny(){

zwęglaćC;
printf ('Wprowadź znak: ');
scanf ('% C', &C);
printf ('Wpisałeś: %c ',C);

powrót 0;
}

W przykładzie2.c widzieliśmy, że kiedy używamy % C specyfikator, scanf() funkcja przyjmuje tylko jeden znak, nawet jeśli wprowadziliśmy więcej niż jeden znak.

Przykład 3: Wprowadzanie pojedynczych znaków (wiele razy)

//Przykład3.c
#włączać

intGłówny(){

zwęglaćC;
printf ('Wprowadź pierwszy znak: ');
scanf ('% C', &C);
printf ('Wpisałeś: %c ',C);

printf ('Wprowadź drugi znak: ');
scanf ('% C', &C);
printf ('Wpisałeś: %c ',C);

powrót 0;
}

Przykład 4 :

//Przykład4.c
#włączać

intGłówny(){

zwęglaćC;
printf ('Wprowadź pierwszy znak: ');
scanf ('% C', &C);
printf ('Wpisałeś: %c ',C);

printf ('Wprowadź drugi znak: ');
scanf ('% C', &C);
printf ('Wpisałeś: %c ',C);

powrót 0;
}

Przykład 5: Wprowadzanie ciągów

//Przykład5.c
#włączać

intGłówny(){

zwęglaćNazwa[piętnaście];
printf ('Wpisz swoje imię: ');
scanf ('%s',Nazwa);
printf ('Wpisałeś: %s ',Nazwa);

powrót 0;
}

getc() Funkcja

Składnia: int getc(PLIK *strumień)

getc() Funkcja służy do odczytywania znaku ze wskaźnika FILE (strumienia). Aby czytać z klawiatury, musimy użyć stdin . Ta funkcja zwraca wartość całkowitą odczytanego znaku.

Przykład 6:

//Przykład6.c
#włączać

intGłówny(){

zwęglaćC;
printf ('Wprowadź pierwszy znak: ');
podczas((C= weź (stdin))==' ');
printf ('Wpisałeś: %c ',C);

podczas( weź (stdin)! =' ');

printf ('Wprowadź drugi znak: ');
podczas((C= weź (stdin))==' ');
printf ('Wpisałeś: %c ',C);

powrót 0;
}

getchar() Funkcja

Składnia: int getchar (nieważne)

getchar() funkcja jest taka sama jak getc() . Jedyna różnica polega na tym, że getc() funkcja może czytać z dowolnego strumienia wejściowego, natomiast getchar() funkcja odczytuje tylko ze standardowego wejścia.

Przykład 7:

//Przykład7.c
#włączać

intGłówny(){

zwęglaćC;
printf ('Wprowadź pierwszy znak: ');
podczas((C= dostaćchar ())==' ');
printf ('Wpisałeś: %c ',C);

podczas( dostaćchar ()! =' ');

printf ('Wprowadź drugi znak: ');
podczas((C= dostaćchar ())==' ');
printf ('Wpisałeś: %c ',C);

powrót 0;
}

Wniosek

W tym artykule zobaczyliśmy, jak funkcje wejściowe są używane w języku C. Wszystkie te funkcje są pobierane z bufora wejściowego i kiedy używamy tych funkcji wielokrotnie, musimy wyczyścić bufor. W przeciwnym razie funkcje nie będą czekać na dane wejściowe użytkownika i pobierać dane wejściowe z bufora.