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.