ANSI C 7

ANSI C 7



1 ELEMENTARZ

Model wprowadzania i wyprowadzania danych, realizowany przez funkcje z biblioteki standardowej, jest bardzo prosty. Wejściowy lub wyjściowy tekst - niezależnie od tego, skąd pochodzi ani dokąd zmierza - jest związany ze strumieniem znaków. Taki strumień znaków jest ciągiem znaków podzielonym na wiersze. Każdy wiersz I składa się z zera lub więcej znaków, po których następuje znak nowego wiersza. To biblioteka ponosi odpowiedzialność za dostosowanie każdego strumienia wejściowego czy wyjściowego do tego modelu. Programista piszący w języku C i używający funkcji z biblioteki nie musi się troszczyć o to, jak wiersze są reprezentowane poza programem.    ,

Standardowa biblioteka języka C zawiera kilka funkcji czytających lub wypisujących jeden znak. Funkcje getchar i putchar są najprostsze. Przy każdym wywołaniu funkcja getchar pobiera ze strumienia znaków następny znak i wraca z jego wartością. A więc po wykonaniu instrukcji

c = getchar()

zawartością zmiennej c jest następny znak z wejścia. Zwykle znaki pochodzą z klawiatury komputera; danymi pochodzącymi z pliku zajmiemy się w rozdz. 7.

Każde wywołanie funkcji putchar powoduje wypisanie jednego znaku. Instrukcja

putchar(c)    j

powoduje więc wypisanie zawartości zmiennej całkowitej C jako znaku na pewnej urządzenie wyjściowe, którym zwykle jest ekran monitora. Wywołania funkcji! putchar i printf mogą być przemieszane; postać wyniku będzie zgodna z kolejnością! tych wywołań.

1-5.1 Kopiowanie plików    I

Korzystając z funkcji getchar i putchar, możesz napisać zaskakująco dużo poży*J tecznych programów bez dodatkowych wiadomości o mechanizmach wejściaj -wyjścia. Najprostszym przykładem jest program kopiujący dane znak po znaku tA swojego wejścia na swoje wyjście. Ogólny schemat takiego programu wygląda naj stępująco:

przeczytaj znak    II

while (znak nie jest sygnałem końca pliku)    !

wypisz właśnie przeczytany znak przeczytaj następny znak

1.5 WEJŚCIE I WYJŚCIE ZNAKOWE

powerea oy

Mis i o 1


po przekształceniu go na język C otrzymujemy program:

#include <stdio.h>

/* przepisz wejście na wyjście; wersja 1 */ main()

{

int c;

c = getchar(); while (c != EOF) { putchar(c); c = getchar();

}

}

Operator relacji != oznacza „różny od”.

To, co pojawia się jako znak z klawiatury lub wyświetla na ekranie, ma oczywiście -jak wszystko inne - swoją reprezentację wewnętrzną, którą jest wzorzec bitowy. Do przechowywania takich danych znakowych wprowadzono specjalny typ char, lecz można używać dowolnego typu całkowitego. My stosujemy typ int z pewnego subtelnego, ale ważnego powodu.

Problem polega na tym, jak odróżnić koniec danych wejściowych od poprawnej danej. Przyjęto konwencję, że gdy wejście jest już puste, wówczas funkcja getchar zwraca wartość, której nie można pomylić z żadnym prawdziwym znakiem. Tę wartość nazwano symbolicznie EOF (ang. end offile), czyli koniec pliku. Typ zmiennej c musimy deklarować tak, aby mogła ona przechować każdą wartość zwracaną przez funkcję getchar. Nie możemy zastosować typu char, ponieważ zmienna c - poza wszystkimi możliwymi wartościami typu char - musi dodatkowo pomieścić wartość EOF. Właśnie dlatego w takich sytuacjach stosujemy typ int.

Stała EOF jest obiektem całkowitym, zdefiniowanym w standardowym pliku nagłówkowym <Stdio.h>. Rzeczywista wartość tej stałej nie ma znaczenia dopóty, dopóki różni się od wszystkich wartości typu char. Zastosowanie stałej symbolicznej EOF upewnia nas w tym, że nasz program nie zależy od żadnej specyficznej wartości numerycznej.

Programiści zaawansowani w języku C mogą napisać program kopiowania w bardziej zwartej postaci. W języku C każde przypisanie, np.

c = getcharO

37


Wyszukiwarka

Podobne podstrony:
ANSI C 4 1 ELEMENTARZ Większość pracy programu jest realizowana przez pętlę while. Obliczenie temp
- 27 - Rys. 7. Sohemat locdlozny modułu wprowadzania i wyprowadzania danych
ANSI C 7 1 ELEMENTARZ dopiero w chwili wywołania funkcji i znika po zakończeniu jej działania. Z t
Foto7 -    do slotu 4 wprowadzić moduł wejść analogowych przez wybór SMAlt SM331
68 towany przez nią i przynoszący dostrzegalne korzyści, model zaspokajania jej potrzeb, realizowany
WPROWADZANIE I WYPROWADZANIE INFORMACJIGRAFICZNEJ c) Podstawowe cechy funkcjonalne: -
ANSI C 7 5 WSKAŹNIKI I TABLICE Ćwiczenie 5.1. Tak jak została napisana, funkcja getint traktuje zn
Elementy teletransmisji danych1.2. Realizacja połączeń komutowanych Możliwość połączenia dwóch
Elementy charakterystyczne dla baz danych: aj model danych (zbiór zasad służących do opisu logicznej
Organizacja pamięci Wprowadzanie i wyprowadzanie -► Szyna danych DB / ) informacji
Jakie elementy należy wprowadzić do programu, aby utrwalać dane w bazie danych metodą ORM (na przykł
Jakie elementy należy wprowadzić do programu, aby utrwalać dane w bazie danych metodą ORM (na przykł
slajd20 (167) PRZYGOTOWANIE DANYCH czyszczeniePrzygotowanie danych: Czyszczenie danych realizowane w

więcej podobnych podstron