czwartek, 26 kwietnia 2018

Język C - Wejście i wyjście


C - Wejście i wyjście

Kiedy mówimy "Wejście" , oznacza to podawanie pewnych danych do programu. Dane wejściowe można podać w postaci pliku lub z wiersza poleceń. Język C zapewnia zestaw wbudowanych funkcji do odczytu danego wejścia i dostarczenia go do programu zgodnie z wymaganiami.
Kiedy mówimy "Wyjście" , oznacza to wyświetlenie niektórych danych na ekranie, drukarce lub w dowolnym pliku. Język C zapewnia zestaw wbudowanych funkcji do wyprowadzania danych na ekran komputera, a także do zapisywania go w tekście lub plikach binarnych.

Pliki standardowe

Język C traktuje wszystkie urządzenia jako pliki. Tak więc urządzenia takie jak wyświetlacz są adresowane w ten sam sposób, jak pliki, a następujące trzy pliki są automatycznie otwierane, gdy program jest uruchamiany w celu zapewnienia dostępu do klawiatury i ekranu.
Standardowy plik
Wskaźnik pliku
Urządzenie
Standardowe wejście
stdin
Klawiatura
Standardowe wyjście
stdout
Ekran
Standardowy błąd
stderr
Twój ekran
Wskaźniki plików są środkami dostępu do pliku w celu odczytu i zapisu. W tej sekcji wyjaśniono, jak odczytać wartości z ekranu i jak wydrukować wynik na ekranie.

Funkcje getchar() i putchar()

Funkcja int getchar(void) odczytuje następny dostępny znak z ekranu i zwraca ją jako liczbę całkowitą. Ta funkcja odczytuje tylko pojedynczy znak na raz. Możesz użyć tej metody w pętli na wypadek, gdybyś chciał przeczytać więcej niż jeden znak z ekranu.
Funkcja int putchar(int c) umieszcza przekazany znak na ekranie i zwraca ten sam znak. Ta funkcja umieszcza tylko jeden znak na raz. Możesz użyć tej metody w pętli, jeśli chcesz wyświetlić więcej niż jeden znak na ekranie. Sprawdź poniższy przykład -
#include <stdio.h>
int main( ) {

   int c;

   printf( "Wprowadź znak:");
   c = getchar( );

   printf( "\n Wpisałeś: ");
   putchar( c );

   return 0;
}
Kiedy powyższy kod zostanie skompilowany i wykonany, oczekuje na podanie jakiegoś tekstu. Po wprowadzeniu tekstu i naciśnięciu klawisza enter program kontynuuje i odczytuje tylko jeden znak i wyświetla go w następujący sposób:
$./a.out
Wprowadź znak : u
Wpisałeś: u

Funkcje get () i puts ()

Funkcja char *gets(char *s) odczytuje linię ze stdin do bufora wskazywanego przez s, aż do kończącej się nowej linii lub EOF (End of File).
Funkcja int puts(const char * s) zapisuje ciąg znaków "s" i "a" oraz końcowy znak nowej linii do stdout .
#include <stdio.h>
int main( ) {

   char str[100];

   printf( "Wprowadz tekst :");
   gets( str );

   printf( "\n Wpisales: ");
   puts( str );

   return 0;
}
Kiedy powyższy kod zostanie skompilowany i wykonany, oczekuje na podanie jakiegoś tekstu. Po wprowadzeniu tekstu i naciśnięciu klawisza enter program kontynuuje i odczytuje całą linię do końca i wyświetla ją w następujący sposób:
$./a.out
Wprowadz tekst: telewizja
Wpisales: telewizja

Funkcje scanf () i printf ()

Funkcja int scanf(const char * format, ...) odczytuje dane wejściowe ze standardowego strumienia wejścia stdin i skanuje to wejście zgodnie z dostarczonym formatem.
Funkcja printf(const char *format, ...) zapisuje wyjście do standardowego strumienia wyjściowego stdout i produkuje dane wyjściowe zgodnie z dostarczonym formatem.
Formatowanie może to być prosty ciąg, który  można określić za pomocą ,%S,%d,%C,%K, itd., aby wydrukować lub czytać ciągi, liczby całkowite znaki lub liczby dziesiętne odpowiednio. Dostępnych jest wiele innych opcji formatowania, które można stosować w zależności od wymagań. Przejdźmy teraz do prostego przykładu aby lepiej zrozumieć pojęcie -
#include <stdio.h>
int main( ) {

   char str[100];
   int i;

   printf( "Wprowadź dane :");
   scanf("%s %d", str, &i);

   printf( "\n Wpisales: %s %d ", str, i);

   return 0;
}
Kiedy powyższy kod zostanie skompilowany i wykonany, oczekuje na podanie jakiegoś tekstu. Po wprowadzeniu tekstu i naciśnięciu klawisza enter program kontynuuje i odczytuje dane wejściowe i wyświetla je w następujący sposób:
$./a.out
Enter a value : osiem 8
You entered: osiem 8
W tym miejscu należy zauważyć, że scanf() oczekuje wejścia w tym samym formacie co podany %s i %d, co oznacza, że ​​musisz podać poprawne dane wejściowe, takie jak "liczba całkowita". Jeśli podasz "ciąg znaków" lub "całkowitą liczbę całkowitą", zostanie to przyjęte jako błędne dane wejściowe. Po drugie, podczas czytania łańcucha, scanf() przestaje czytać, gdy tylko napotka spację, więc "to jest test" to trzy ciągi dla scanf().

Poprzednia strona                                                          Następna strona

Brak komentarzy:

Prześlij komentarz