C - we/wy
Transkrypt
C - we/wy
Wejście/wyjście Odczyt danych z klawiatury (standardowego wejścia) oraz zapis na monitor (standardowe wyjście) w programie w C realizowany jest za pomocą funkcji systemowych printf i scanf znajdujących się w standardowej bibliotece wejścia/wyjścia, która jest domyślnie dołączana do każdego programu. Funkcja printf, która umożliwia wypisywanie wyników na standardowym wyjściu może mieć wiele argumentów: printf(tekst_sterujący, arg1, arg2,…) Pierwszy argument jest tekstem zawartym między znakami ” i zawiera ciąg znaków mających się pojawić wprost na wyjściu oraz formaty opisujące sposoby wypisywania na ekranie kolejnych argumentów. Każdy opis pola (format) rozpoczyna się znakiem % a kończy znakiem przekształcenia (np. d, f) i dotyczy kolejnego argumentu – liczba formatów powinna być równa liczbie argumentów pomniejszonej o 1. Poniższy program powoduje wypisanie na ekranie wartości zmiennych i, j typu integer oraz zmiennej a typu double. int main(int argc, char *argv[]) { int i=1,j; double a=0.1; j=i+1; printf("\ti=%d\n\tj=%d\n\ta=%f\n",i,j,a); } Pierwszy parametr funkcji printf zawiera opisy pól odpowiadające wyprowadzanym zmiennym: %d – opisuje zmienną i, kolejny opis %d opisuje zmienną j, %f opisuje zmienną a. Wartość każdej zmiennej pojawi się na ekranie w nowej linii (\n) po odstępie (\t) poprzedzona nazwą zmiennej i znakiem równości: i=1 j=2 a=0.100000 Znaki przekształcenia zależą od typu zmiennej, i określają sposób, w jaki ma zostać wyświetlona: d – liczba dziesiętna całkowita f – liczba zmiennoprzecinkowa w notacji dziesiętnej (np. 15.78) e – liczba zmiennoprzecinkowa w notacji wykładniczej (np. 1.0e+10 oznacza 1 * 1010) c – pojedynczy znak s - ciąg znaków x – liczba szesnastkowa o – liczba ósemkowa Aby określić liczbę wyświetlanych cyfr znak przekształcenia należy poprzedzić kodem długości. Np.: %4d – oznacza liczbę całkowitą zapisana na co najmniej 4 pozycjach (jeśli liczba znaków nie będzie wystarczająca pole zostanie powiększone) %10.4f – oznacza liczbę rzeczywistą zapisaną na 10 pozycjach, z dokładnością do 4 cyfr po przecinku Do formatowania wyników w postaci tabelki może być przydatny znak – występujący bezpośrednio po symbolu %, powodujący dosunięcie argumentu do początku pola (np. %-4d). Do wprowadzania danych służy funkcja scanf: scanf(tekst_sterujący, adres1, adres2,…) Odczytuje ona dane ze standardowego wejścia według formatu zadanego w pierwszym parametrze i zapisuje je pod adresami będącymi kolejnymi argumentami. tekst_sterujący zawiera jedynie kody formatowania, które są analogiczne jak w funkcji printf. Adres zmiennej, która ma być wczytana uzyskuje się za pomocą operatora &. Poniższy program wyświetla zaproszenie do podania wartości zmiennej i oraz a, wczytuje dane i wyświetla ich wartości. int main(int argc, char *argv[]) { int i; double a; printf("podaj i\n"); scanf("%d",&i); printf("a="); scanf("%lf",&a); printf("\ti=%d\n\ta=%-10.2e\n",i,a); } A oto efekt wykonania programu Czcionką pogrubioną zapisane zostały dane podane przez użytkownika: podaj i 20 a=1000000 i=20 a=1.00e+006