Strumienie standardowe C
|
|
- Jacek Kwiatkowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Strumienie standardowe C Lista standardowych strumieni w języku C składa się z trzech elementów: stdin (strumień wejściowy), stdout (strumień wyjściowy) oraz stderr (standardowe wyjście błędów). W niektórych implementacjach wyróżnia się dodatkowo stdprn (strumień wyjściowy związany z drukarką), stdaux (strumień wyjściowy związany z ekranem). Najczęściej używanymi funkcjami operującymi na tych strumieniach są: printf, puts, scanf, gets (zdefiniowane w stdio.h). printf jest funkcją służącą do wysyłania sformatowane danych do stdout, zdefiniowaną w stdio.h. Zazwyczaj funkcja ta używana jest do wypisywania danych na ekranie komputera (jeśli stdout jest skojarzony z ekranem komputera, a nie z np. plikiem). Funkcja printf zwraca liczbę wypisanych znaków lub wartość ujemną, jeśli wystąpił błąd. Funkcja ta może mieć zmienną liczbę parametrów. Jej składnia wygląda następująco: int printf(const char * ciąg_formatujący[,argument_1, argument_2,...]); ciąg_formatujący w wywołaniu printf musi pojawić się zawsze, natomiast obecność kolejnych argumentów jest uzależniona od postaci ciągu_formatującego. ciąg_formatujący jest stałą łańcuchową, tj. ciągiem znaków ujętych w podwójne cudzysłowie. Może on zawierać: zwykłe znaki (widoczne znaki ASCII z pominięciem niektórych z nich), sekwencje znaków kontrolnych (składające się ze znaku \ i pojedynczej litery), oraz specyfikację formatowania kolejnych argumentów (zaczynające się znakiem %). Kiedy ciąg_formatujący nie zawiera żadnej specyfikacji formatowania, funkcja printf ma tylko jeden argument ciąg_formatujący właśnie. Jeśli nie występują w nim sekwencje kontrolne, to ciąg_formatujący jest zwykłym tekstem, bez zmian wypisywanym na stdout. Gdy ciąg_formatujący zawiera sekwencje kontrolne, ich znaczenie będzie takie, jak podano w poniższej tabelce: sekwencje znaków kontrolnych sekwencja Znaczenie \a dzwonek (alarm) \b cofnięcie (backspace) \n znak nowej linii \t znak tabulacji \\ ukośnik (backslash) \? Pytajnik \' pojedynczy apostrof \" podwójny apostrof Przykład: kod źródłowy #include <stdio.h> void main(){ printf( "\n\nsekwencja\tznaczenie" ); printf( "\n=========\t=======" ); printf( "\n\\a\t\tdzwonek" ); printf( "\n\\b\t\tbackspace" ); printf( "\n...\t\t..."); } wynik Sekwencja Znaczenie ========= ======= \a dzwonek \b backspace......
2 Obecność w ciągu_formatującym specyfikacji formatowania świadczy o tym, że funkcja printf ma wypisać na stdout wartość jakiegoś argumentu. Sposób wypisania tej wartości zależy od specyfikacji formatowania. Składnia specyfikacji formatowania jest następująca (choć może być bogatsza): %[flagi] [szerokość] [.precyzja] [{ l h L }]znak_typu gdzie znak_typu jest parametrem obowiązkowym, pozostałe zaś parametry specyfikacji są opcjonalne. flagi (tj. jeden znak lub parę znaków) definiują sposób wyrównania oraz sposób wypisywaniu znaków, pól pustych, przecinków dziesiętnych, przedrostów dla liczb dziesiętnych, ósemkowych i szesnastkowych. Ich znaczenie i wartości domyślne przedstawia poniższa tabela. Flaga Znaczenie Wartość domyślna - wyrównanie do lewej wewnątrz danego pola wyrównanie do prawej + przedrostek określający znak (+ albo -) dla liczby ze znakiem 0 jeśli jest przedrostkiem szerokości, zera są dodawane aż do wypełnienia pola o zadanej minimalnej szerokości. 0 jest ignorowane, jeśli: występuje razem ze znakiem ; towarzyszy któremuś ze znaków typu (i, u, x, X, o, d). ' ' jeśli wartość wyjściowa jest ze znakiem i jest dodatnia, (spacja) to dodawana jest przed nią spacja. Flaga ta jest ignorowana, jeśli wystąpi ona razem z flagą + # towarzysząc znakom typu o, x lub X powoduje, odpowiednio, dopisanie 0, 0x lub 0X do każdej niezerowej wartości wyjściowej towarzysząc znakom typu e, E lub f wymusza wystąpienie przecinka dziesiętnego w każdym przypadku towarzysząc znakom typu g lub G wymusza pojawienie się przecinka dziesiętnego we wszystkich przypadkach i zabezpiecza przed obcinaniem zer. Jest ignorowana, kiedy występuje razem z c, d, i, u lub s. znak występuje tylko dla ujemnych liczb ze znakiem nie uwzględniane spacje nie są dodawane nie występują znaki puste przecinek dziesiętny, jeśli są jakieś liczby po przecinku przecinek dziesiętny, jeśli są jakieś liczby po przecinku. Zera są obcinane szerokość jest nieujemną, dziesiętną liczbą całkowitą, określającą minimalną liczbę wypisywanych znaków. Jeśli liczba wypisywanych znaków wartości wyjściowej jest mniejsza niż zadeklarowana szerokość, do wypisywanej wartości dodawane są znaki puste do lewej lub do prawej strony (zależnie od obowiązującego sposobu wyrównania) aż do osiągnięcia minimalnej liczby znaków. Jeśli szerokość poprzedzona jest znakiem 0, puste pola wypełniane są zerami aż do osiągnięcia minimalnej liczby znaków. Jeśli parametr szerokość jest zadeklarowany jako gwiazdka (*), wtedy wartość dziesiętna określająca minimalną liczbę wypisywanych znaków pobierana jest z listy argumentów. Wartość ta musi poprzedzać argument, który aktualnie będzie formatowany. Zadeklarowanie małej szerokości nigdy nie powoduje obcinania wartości. Jeśli liczba znaków wartości wyjściowej przekracza szerokość lub gdy szerokość nie jest zdefiniowana, to wypisywane są wszystkie znaki (zgodnie z zadeklarowaną precyzją).
3 precyzja jest nieujemną, dziesiętną liczbą całkowitą określającą liczbę znaków, które mają być wypisane, liczbę miejsc dziesiętnych lub liczbę cyfr znaczących. Deklaracja precyzji może powodować obcinanie wypisywanych wartości wyjściowych lub zaokrąglanie wartości zmiennoprzecinkowych (zależnie od znaku_typu). Jeśli precyzja określona jest jako 0 i wartość do wypisania równa jest 0, to żaden znak nie jest wypisywany (jak w przypadku printf( "%.0d", 0 );). Jeśli parametr precyzja jest zadeklarowany jako gwiazdka (*), jego wartość pobierana jest z listy argumentów. Wartość ta musi poprzedzać argument, który aktualnie będzie formatowany. Domyślna wartość precyzji dla liczb całkowitych równa jest 1, zaś dla liczb zmiennoprzecinkowych równa jest 6. znak_typu określa sposób, w jaki potraktowany zostanie odpowiadający mu argument funkcji printf. W ogólności liczba specyfikacji formatowania (tj. fragmentów ciągu_formatującego zaczynających się od %) powinna odpowiadać liczbie argumentów funkcji printf (tj. liczbie argumentów występujących za ciągiem_formatującym). Jeśli argumentów w wywołaniu printf jest więcej niż specyfikacji formatowania, nadmiarowe argumenty nie zostaną wypisane. Jeśli argumentów jest mniej, wypisane zostaną śmiecie. Ponadto argumentem funkcji printf może być wyrażenie, którego wartość jest wyliczana. znak_typu i typ argumentu musza ze sobą korelować. Na przykład: specyfikacji formatowania %c powinien odpowiadać argument typu char, %d argument typu int lub short, %ld argument typu long, %s argumentu typu tablica znaków, itd. Poniższa tabela zawiera listę znaków typu oraz ich znaczenie. Znaki formatujące i ich znaczenie znak Znaczenie d, i liczba całkowita ze znakiem w kodzie dziesiętnym u liczba całkowita bez znaku w kodzie dziesiętnym o liczba całkowita w kodzie ósemkowym x, X liczba całkowita (bez znaku) w kodzie szesnastkowym (x dla małych liter, X dla dużych liter). c pojedynczy znak (odpowiadający argument powinien być kodem ASCII znaku) e, E liczba zmiennoprzecinkowa w notacji naukowej, zgodnie z podaną precyzją, gdzie e stosuje się dla wypisania małej litery wykładnik, E dla litery dużej. Dla domyślnej wartości precyzji wyświetlone będzie jako e+002. f liczba zmiennoprzecinkowa w kodzie dziesiętnym, zgodnie z podaną precyzją. Dla domyślnej wartości precyzji wyświetlone będzie jako g, G g działa jak e, lub f, zaś G jak E lub f, wybierając format dający bardziej zwarty zapis dla bieżącej wypisywanej wartości. Format e użyty zostanie, jeśli wykładnik wartości jest mniejszy niż 4 albo większy lub równy zadeklarowanej precyzji, w przeciwnym razie użyty zostanie format f. Zera na końcu są obcinane, przecinek wystąpi, jeśli istnieje przynajmniej jedna cyfra po przecinku. n Nic nie wypisuje. Odpowiadający argument powinien być wskaźnikiem do int. Funkcja printf wpisze pod ten wskaźnik liczbę dotychczas wyprowadzonych znaków (np. przy deklaracji int licznik; wykonaniu funkcji printf("1234%n567,&licznik); sprawi, że licznik będzie równy 5). s łańcuch znaków (argument powinien być wskaźnikiem do char). Znaki są
4 l wypisywane aż do napotkania znaku null ( \0 ) lub przekroczenia limitu wypisanych znaków określonego przez precyzję (standardowo jest to 32767). Kończący ciąg znak null nie jest wypisywany. przedrostek (long) stosowany przed: d u x o (nie odpowiada mu żaden argument) Jeśli po znaku % wystąpi jakiś znak nie odgrywający roli w formatowaniu, znak ten zostanie wypisany bez żadnych zmian. Dlatego printf("%%"); wypisuje pojedynczy znak %. Szerokość i precyzja decydują o wielkości pola przeznaczonego na wypisywaną liczbę oraz ilości cyfr uwzględnianych po przecinku. Na przykład specyfikacja %4d mówi, że argument będzie wypisany jako liczba dziesiętna na czterech pozycjach, %4f jako liczba rzeczywista na 4 pozycjach, %5.3 jako liczba rzeczywista na 5 pozycjach z dokładnością do 3 miejsc po przecinku, itd. Przykład: kod źródłowy wynik #include <stdio.h> int a = 2, b = 10; char c = '$'; float f = 1.05, g = 25.5, h = -0.1; main() { printf("1:a = %d, f = %f\n", a, f); printf("2:\t%d \t%c \t%s\n", a, c, "wyraz"); printf("3:\t%f\t%f\n", f, g, h); printf("4:\t%f\n\t%f\n", f, g); printf("%f%%, b/a = %d", f, b/a); return 0; } 1:a = 2, f = : 2 $ wyraz 3: : : %, b/a = 5 scanf jest funkcją służącą do wczytywania pod zadany adres pamięci sformatowane danych ze strumienia stdin, zdefiniowaną w stdio.h. Funkcja ta może mieć zmienną liczbę parametrów. Jej składnia wygląda następująco: int scanf( const char * ciąg_formatujący[,argument] ); ciąg_formatujący w wywołaniu scanf musi pojawić się zawsze, natomiast obecność kolejnych argumentów jest uzależniona od postaci ciągu_formatującego. ciąg_formatujący jest stałą łańcuchową, tj. ciągiem znaków ujętych w podwójne cudzysłowie, definiującą sposób interpretacji danych w strumieniu wejściowym. ciąg_formatujący przeglądany jest od lewej strony do prawej. Podobnie jak w przypadku funkcji printf, może on zawierać: znaki puste (spacje (' '); tabulatory ('\t'); znaki nowej linii ('\n')); znaki niepuste (ale bez %); specyfikacje formatowania. Pojedynczy znak pusty w ciągu formatującym powoduje, że scanf pomija w strumieni wejściowym wszystkie pojawiające się znaki puste, aż do wystąpienia znaku niepustego. Mówiąc inaczej, jednemu znakowi pustemu w ciągu formatującym odpowiada dowolna liczba (włącznie z 0) pustych znaków lub ich kombinacji w strumieniu. Znaki niepuste (jak np. 'a',..., '9') powodują, że scanf czyta odpowiadające im niepuste znaki ze strumienia
5 wejściowego (choć i w tym wypadku nigdzie ich nie zapisuje). Jeśli któryś z niepustych znaków w strumieniu wejściowym nie pokrywa się z niepustym znakiem w ciągu formatującym, scanf kończy swoje działanie, pozostawiając ten znak w strumieniu wejściowym. Obecność specyfikacji formatowania w ciągu_formatującym świadczy o tym, że funkcja scanf ma: wczytać znaki ze standarowego wejścia, przekonwertować je zgodnie z podanym formatem, zapisać otrzymane dane pod adres podany w argumencie. Argumenty powinny być adresami w pamięci, pod które wartości danych mają być wczytywane. Kolejne specyfikacje formatowania odpowiadają kolejnym argumentom. Składnia specyfikacji formatowania jest następująca: %[*] [szerokość] [{h l L}]znak_typu Jeśli po % występują jakieś znaki, które nie decydują o formatowaniu, znaki te (aż do następnego znaku %) muszą wystąpić w strumieniu wejściowym. Jeśli w strumieniu wejściowym spodziewany jest znak %, można go przeskoczyć używając %%. gwiazdka (*) występująca zaraz za znakiem % nie pozwala przypisać wartości pod adres podany w bieżącym argumencie, choć wartość ta jest wczytana zgodnie z podaną specyfikacją. Umożliwia to przeskoczenie wybranej wartości w strumieniu wejściowym. Pole w strumieniu wejściowym zdefiniowane jest jako ciąg znaków, które czytane są: aż do pierwszego wystąpienia znaku pustego (spacji, tabulatora, znaku nowej linii); lub aż do pierwszego znaku, który nie może być skonwertowany zgodnie z podaną specyfikacją; lub aż do osiągnięcia limitu zdefiniowanego parametrem szerokość (tj. maksymalnej liczby znaków dla danego argumentu). znak_typu mówi o tym, jakiego typu danych należy spodziewać się w strumieniu. Lista znaków typu funkcji scanf jest podobna do znaków typu funkcji printf: Znaki formatujące scanf i i ich znaczenie znak Znaczenie d, i liczba całkowita ze znakiem w kodzie dziesiętnym u liczba całkowita bez znaku w kodzie dziesiętnym o liczba całkowita w kodzie ósemkowym (bez znaku) x, X liczba całkowita (bez znaku) w kodzie szesnastkowym c pojedynczy znak s łańcuch znaków f, e liczba zmiennoprzecinkowa Przedrostki znaku typu (l, h, L) są modyfikatorami typu argumentu. l (przed d u x o ) oznacza, że będzie on traktowany jako long int; l (przed f e ) - jako double; h - jako short int; L (przed: f e ) jako long double. Funkcja scanf zwraca liczbę poprawnie wczytanych danych, tj. liczbę wartości, które zostały poprawnie skonwertowanych i przypisanych argumentom. Jeśli jakaś dana została wczytana, a nie została przypisana argumentowi, nie jest ona zliczana. Jeśli funkcja zwróci 0, to znaczy, że nie została wykonana żadna operacja przypisania. W przypadku wystąpienia błędu wartością zwracaną jest EOF. Wartość EOF jest również zwracana, jeśli napotkany został znak końca pliku lub znak końca ciągu znaków podczas próby czytania pierwszego znaku. Jeśli argumentów w wywołaniu scanf jest zbyt wiele (więcej niż specyfikacji formatowania), nadmiarowe argumenty są ignorowane. Jeśli argumentów jest za mało, wynik działania scanf jest nieprzewidywalny. Przykład: Kod źródłowy wynik #include <stdio.h> > Podaj liczby typu: int, float, double,
6 void main(void){ int a; float b; double c; char d; printf("podaj liczby typu: int, float, double, char:" ); scanf( "%d %f %le %c", &a, &b, &c, &d); printf(("wynik wczytywania: a=%d b=%f c=%e d=%c", a, b, c, d); } char: > 123 (Enter) > e-10 (Enter) > z (Enter) > Wynik wczytywania: a=123, b= , c= e-009 znak == a
7 Strumienie standardowe C++ Język C++ dostarcza czterech predefiniowanych strumieni. Są to: cin (standardowe wejście połączone z klawiatura), cout (standardowe wyjście połączone z ekranem monitora), cerr (standardowe wyjście połączone z monitorem), clog (podobnie do cerr, tylko, że jest to strumień buforowany). Klasą odpowiedzialną za automatyczne tworzenie i inicjalizowanie predefiniowanych strumieni (tj. tworzenie i inicjalizowanie odpowiednich obiektów) jest statyczna klasa Iostream_init. Normalnie użytkownik nie tworzy żadnego obiektu klasy Iostream_init. Obiekt tej klasy tworzony jest niejawnie przy pierwszym pojawieniu się referencji do któregoś z predefiniowanych strumieni. Predefiniowane strumienie są obiektami klas istream (cin) oraz ostream (cout, cerr, clog). Dysponują one wszystkimi możliwościami tych klas, a więc dysponują również możliwościami odziedziczonymi z klasy bazowej ios. Wewnątrz klasy ios zdefiniowanych jest szereg parametrów, typów i metod, dzięki którym można sterować własnościami klasy, wykonywać pewne operacje, monitorować osiągane stany. Bity niektórych parametrów interpretowane są jako flagi określające np. sposób formatowania danych, czy też flagi informujące o błędach. W ogólności użytkownik nie musi wcale wiedzieć, za co odpowiadają poszczególne bity parametrów. Wystarczy, jeśli znać będzie funkcje operujące na tych bitach oraz typy wyliczeniowe zdefiniowanych w klasie (o nazwach odpowiadających roli bitów). Najważniejsze funkcje, manipulatory, flagi i stałe dostępne w klasie ios przedstawione są poniżej. Funkcje dostępu do flag i funkcje definiujące sposób formatowania (metody publiczne ios::) long flags( long lflags ); - ustawia flagi formatowania i zwraca stare flagi long flags() const; - odczytuje flagi formatowania long setf( long lflags ); long setf( long lflags, long lmask ); long unsetf( long lflags ); char fill( char cfill ); char fill() const; int precision( int np ); int precision() const; - ustawia te flagi formatowania, którym odpowiada 1 w argumencie lflags i zwraca cały stare flagi; - zmienia te wartości flag, którym odpowiada 1 w argumencie lmask, przy czym nowa wartość flagi zdefinowana jest wartością bitu na odpowiednim miejscu w argumencie lflags; oraz zwraca stare flagi - czyści te flagi formatowania, którym w argumencie lflags odpowiada 1 i zwraca stare flagi - ustawia nowy znak wypełnienia i zwraca stary znak - odczytuje znak wypełnienia - ustawia dokładność wyświetlania liczb zmiennoprzecinkowych i zwraca starą dokładność - odczytuje dokładność wyświetlania liczb zmiennoprzecinkowych. Domyślnie dokładność ustawione jest na 6 cyfr. Jeśli formatem wyświetlania jest format scientific lub fixed, dokładność określa liczbę cyfr po przecinku. Jeśli formatem jest automatic, precision określa ogólną liczbę cyfr znaczących.
8 int width( int nw ); int width() const; - ustawia szerokość pola w strumieniu wyjściowym zwracając starą wartość - odczytuje szerokość pola w strumieniu wyjściowym. Jeśli szerokość wynosi 0 (wartość domyślna), do strumienia wstawiane będą tylko znaki konieczne do reprezentowania wstawianej wartości. Kiedy szerokość różna jest od 0, wolne pola uzupełniane są znakami wypełnienia. Deklaracja szerokości mniejszej niż liczba wyprowadzanych znaków danej wartości nie powoduje ich obcięcia. Parametr nw jest szerokością minimalną. Maski (statyczne parametry publiczne ios::) static const long używana do otrzymania flagi podstawy konwersji (dec, oct, basefield; lub hex) static const long używana do ustawienia flagi wyrównania w polu (left, adjustfield right, lub internal) static const long używana do otrzymania flagi formatu numerycznego floatfield (scientific lub fixed) Przykład (warunek sprawdzający, czy liczby wypisywane będą szesnastkowo): extern ostream os; if( ( os.flags() & ios::basefield ) == ios::hex )... Funkcje testujące status (metody publiczne ios::) int good() const; zwraca wartość różną od zera, jeżeli nie było błędu (wszystkie bity błędu są zerami) int bad() const; zwraca wartość różną od zera, aby pokazać wystąpienie poważnego błędu we/wy (co jest równoważne z ustawieniem flagi błędu badbit) int eof() const; zwraca wartość różną od zera, jeśli osiągnięty został koniec pliku (co jest równoważne z ustawieniem flagi błędu eofbit) int fail() const; zwraca wartość różną od zera, jeśli wystąpił błąd we/wy (ale nie koniec pliku) (co jest równoważne do ustawienia flagi błędu badbit lub failbit). Jeśli funkcja bad zwróci wartość 0, prawdopodobnie wystąpił naprawialny błąd formatowania lub konwersji. int rdstate() zwraca aktualny stan błędu (wartość flagi konkretnego błędu uzyskać const; można przez zastosowanie operatora & (AND) do wartości zwracanej i którejs z masek: ios::goodbit, ios::eofbit, ios::failbit lub.ios::badbit) void clear( int ustawia lub czyści flagi błędu strumienia zgodnie z wartościami bitów nstate = 0 ); nstate (bity te można ustawić stosując operator (OR) z maskami ios::goodbit, ios::eofbit, ios::failbit lub.ios::badbit) Status błędu operacji we/wy przechowywany jest wewnątrz klasy ios. Istnieją dwie metody na sprawdzenie statusu błędu we/wy: 1. Można wywołać metodę rdstate (zwracającą aktualny stan błędu) i odczytać status błędu przez zastosowanie masek ios::goodbit (nie ma błędu), ios::eofbit (osiągnięto koniec pliku), ios::failbit (wystąpił błąd we/wy), ios::badbit (wystąpił poważny błąd we/wy). Przykład: if(file.rdstate() & ios::eofbit) { // koniec pliku}
9 2. Można użyć funkcji testujących status: bad, eof, fail, good Inne funkcje (metody publiczne ios::) delbuf steruje powiązaniem usuwania streambuf z destrukcja ios rdbuf sync_with_stdio tie pobiera obiekt streambuf związany ze strumieniem synchronizuje predefiniowane obiekty cin, cout, cerr, oraz clog ze standardowymi strumieniami wejścia/wyjścia systemu (stdin, stdout, stderr). Jeśli w programie występują operacje we/wy zaimplementowane zgodnie ze standardem języka C i języka C++, wtedy należy użyć tej metody. wiąże podany ostream z bieżącym strumieniem. Operatory (metody publiczne ios::) operator void* dokonuje konwersji strumienia do wskaźnika, który może być użyty jedynie do sprawdzania błędów operator! zwraca wartość różną od 0 jeśli wystąpił błąd we/wy. Manipulatory formatowania (publiczne stałe wyliczeniowe ios::) dec powoduje, że kolejne pola interpretowane są w formacie dziesiętnym (domyślnie) hex oct skipws left right powoduje, że kolejne pola interpretowane są w formacie szesnastkowym powoduje, że kolejne pola interpretowane są w formacie ósemkowym opuszczanie znaków pustych (spacji, tabulatorów, znaków końca wiersza) na wejściu wyrównanie do lewej wyrównanie do prawej internal dodaje znak wypełnienia za znakiem prowadzącym lub znakiem podstawy, ale przed wartością showbase wyświetla stałą numeryczną w formacie, który może być przeczytany przez kompilator C++ showpoint pokazuje przecinek dziesiętny oraz pozostałe zera dla liczb zmiennoprzecinkowych uppercase wyświetla duże litery A do F w zapisze szesnastkowym oraz duże E w zapisie naukowym showpos pokazuje znak + dla wartości pozytywnych scientific wyświetla liczby zmiennoprzecinkowe w notacji naukowej unitbuf stdio powoduje, że ostream::osfx opróżnia bufory strumienia po każdej operacji wstawiania (tj. operacje nie są buforowane) powoduje, że ostream::osfx opróżnia bufory strumieni stdout i stderr po każdej operacji wstawiania (tj. operacje nie są buforowane) Manipulatory parametryzowane (wymagają iomanip.h) long setiosflags( long lflags ustawia flagi formatujące strumienia (flagi mogą być ); połączone operatorem (OR)) long resetiosflags( long lflags czyści flagi formatujące strumienia );
10 int setfill( int nfill ); int setprecision( int np ); int setw( int nw ); ustawia znak wypełnienia strumienia ustawia precyzję wypisywania liczb ustawia szerokość pola (ważne tylko dla następnego pola) Manipulatory trybów otwarcia strumienia (publiczne stałe wyliczeniowe ios::) in dozwolony odczyt ze strumienia out dozwolone zapis do strumienia app wskaźnik przesuwany na koniec strumienia przed wykonaniem każdej operacji zapisu ate wskaźnik przesuwany na koniec strumienia po stworzeniu obiektu obsługującego strumień trunc obcięcie istniejącego strumienia do rozmiaru 0 po stworzeniu obiektu obsługującego strumień binary ustawia tryb otwarcia pliku na tryb binarny (domyślnym trybem jest tryb tekstowy, zobacz ifstream::setmode) nocreate Jeśli plik nie istnieje, otwieranie pliku skończy się niepowodzeniem (zobacz ifstream::open) noreplace Jeśli plik istnieje, otwieranie pliku skończy się niepowodzeniem, chyba, że plik otwierany jest do dopisywania lub jego wskaźnik jest ustawiany od razu na koniec (zobacz ifstream::open) Manipulatory określające pozycję odniesienia (publiczne stałe wyliczeniowe ios::) beg względem początku pliku cur end względem pozycji aktualnej względem końca pliku Klasa istream, oprócz metod odziedziczonych z klasy ios, zawiera metody służące odczytywaniu danych wspólne dla wszystkich strumieni wejściowych. Metody te pozwalają odczytywać dane w postaci binarnej i tekstowej. Definicja klasy istream zawarta jest w pliku iostream.h. Do najważniejszych metod tej klasy należą: Metody klasy istream istream& get( char& znak) wczytuje jeden znak ze strumienia istream& getline( char* bufor, int max_dług, char delim = '\n' ); read( char bufor, int ilość_bajtów ) istream& seekg( streampos pos ) istream& seekg( streamoff off, ios::seek_dir dir ) istream& ignore( int dł_skok = 1, int delim = EOF ); wczytuje do bufora znaki ze strumienia dopóki: albo nie napotka znaku_końca, albo wczytanych zostało już max_dług-1 znaków, albo napotkany został znak końca pliku. Znak delim jest wczytywany ze strumienia, ale nie jest wpisywany do bufora. wczytuje ciąg bajtów do bufora ustawia pozycję czytania ustawia pozycję czytania względem odniesienia wczytuje ze strumienia i nigdzie nie zapisuje dł skok znaków. Kończy działanie, jeśli natrafi na znak delim albo na koniec pliku.
11 int gcount() const; int peek(); void eatwhite(); Jeśli delim = EOF (domyślne ustawienie), wtedy dochodzi do końca pliku. Znak delim jest pobierany ze strumienia. zwraca liczbę wczytanych symboli dla ostatniej niesformatowanej operacji wejścia zwraca bieżący znak w strumieniu nie przesuwając wskaźnika położenia przeskakuje znaki puste w strumieniu istream& putback( char ch ); zwraca znak do strumienia, przy czym musi to być znak, który uprzednio został wczytany W klasie tej zdefiniowany jest operator: Operator klasy istream >> operator pobrania/odczytu danych ze strumienia tekstowego Klasa ostream, oprócz metod odziedziczonych z klasy ios, zawiera metody służące zapisywania danych wspólne dla wszystkich strumieni wyjściowych. Metody te pozwalają zapisywać dane w postaci binarnej i tekstowej. Definicja klasy ostream zawarta jest w pliku iostream.h. Do najważniejszych metod tej klasy należą: Metody klasy ostream put( char& znak) wysyła jeden znak do strumienia write(char bufor, int ilość_bajtów) ostream& seekp( streampos pos ) ostream& seekp( streamoff off, ios::seek_dir dir ) wysyła ciąg bajtów z bufora do strumienia ustawia położenie pisania ustawia względne położenie pisania W klasie ostream zdefiniowany jest operator Operator klasy ostream << operator wysłania/zapisu danych do strumienia tekstowego oraz manipulatory: Manipulatory klasy ostream endl wstawia znak nowej linii i opróżnia bufory ends flush wstawia znak null kończący ciąg znaków opróżnia bufory strumienia W C++ można definiować własne manipulatory formatujące. Wystarczy zdefiniować funkcję, której argumentem będzie strumień przekazany przez referencję, i która zwracać będzie referencję do strumienia. Poniżej pokazany jest przykład manipulatora gwiazdki, który zastosowany do strumienia klasy ostream wypisuje do niego 4 gwiazdki. ostream &gwiazdki(ostream &wy) { ostream << "****"; return wy; } cout << "Tu mamy 4 gwiazdki:" << gwiazdki;
12 Operatory wstawiania i czytania ze strumienia (pobierania i umieszczania) Operatory wstawiania i czytania ze strumienia zaimplementowane w C++ potrafią radzić sobie ze wszystkimi standardowymi typami danych. Pozwalają przy tym użytkownikowi elastycznie formatować dane za pomocą funkcjami składowych klasy ios i manipulatorów (zdefiniowanymi w iomanip.h). Przykład: kod źródłowy wynik float f = cout << f << "\n"; cout.setf(ios::scientific); cout << f << "\n"; cout.setf(ios::uppercase); cout << f << "\n"; e E+01 Przykład: wczytywanie danych z klawiatury i wydruk na ekranie // podejście proceduralne # include <stdio.h> void main( void ) { char znak; int x; long y; double z; char tekst[ 20 ]; // podejście obiektowe # include <iostream.h> void main( void ) { char znak; int x; long y; double z; char tekst[ 20 ]; scanf( "%c", &znak ); scanf( "%d", &x ); scanf( "%ld", &y ); scanf( "%lf", &z ); cin >> znak; cin >> x; cin >> y; cin >> z; // cin.get(znak); scanf( "%19s", tekst ); cin >> tekst; //cin.getline(tekst,19) printf( "znak = %c \n", znak ); printf( "int = %d \n", x ); printf( "long = %d \n", y ); printf( "double = %f \n", z ); printf( "tekst = %s \n", tekst ); } cout << "znak =" << znak << "\n"; cout << "int =" << x << "\n"; cout << "long =" << y << "\n"; cout << "double = " << z << "\n"; cout << "tekst = " << tekst << "\n"; }
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
INFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Materiały do nauki języka C/C++ Tomasz Kubik
Materiały do nauki języka C/C++ Tomasz Kubik Operacje wejścia i wyjścia w języku C i C++ Operacje wejścia/wyjścia (we/wy) nie zostały wbudowane w struktury ani języka C ani C++. śaden z tych języków nie
Wejście wyjście strumieniowe
PARADYGMATY PROGRAMOWANIA Wykład 6 Wejście wyjście strumieniowe stdin standardowy strumień wejściowy stdout standardowy strumień wyjściowy stderr standardowy strumień komunikatów o błędach pliki - inne
1. Wprowadzanie danych z klawiatury funkcja scanf
1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),
Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia
Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin
OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Programowanie w językach
Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie
Operacje wejścia/wyjścia odsłona pierwsza
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
C++ - [3-5] Pliki i strumienie w C++
Slajd 1 z 13 C++ - [3-5] Pliki i strumienie w C++ Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 19 maja 2013 r. Slajd 2 z 13 Klasy i obiekty do obsługi plików Aby korzystać z obiektów do obsługi
Biblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
KURS C/C++ WYKŁAD 5. Typ wyliczeniowy enum
Typ wyliczeniowy enum KURS C/C++ WYKŁAD 5 Istnieje inna często wygodniejsz niż deklaracja const metoda nazywania stałych całkowitych Deklaracja: enum {WRITE, READ, DELETE); definiuje trzy stałe całkowite
dr inż. Paweł Myszkowski Wykład nr 8 (22.04.2015)
dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2014/2015 Wykład nr 8 (22.04.2015) Plan prezentacji:
Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu
Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++
Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2
Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.
Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2018-03-27 09:06:38 +0200 Część I Formatowane (tekstowe) wejście/wyjście Otwarcie pliku
Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,
WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy zmiennych języka C++ Nazwa typu (nazwa skrócona) Rozmiar (bajtów) unsigned char 1 signed char (char) unsigned short int (unsigned) signed short int (int)
Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory
1 Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Pliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
Operacje wejścia/wyjścia (odsłona druga) - pliki
Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały
Struktury, unie, formatowanie, wskaźniki
Struktury, unie, formatowanie, wskaźniki 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12, na rzecz swoich 143209 poddanych uchwalił dekret o 20 procentowej
Podstawy programowania w C++
Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)
Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string) Dorota Pylak Struktura programu działającego na plikach 2 1) Dyrektywa preprocesora #include //zapewnia
Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
Wstęp do programowania
wykład 2 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Liczby Korzystanie z liczn C++ zna różne rodzaje liczb (różne typy liczbowe) i potrafi wykonywać na nich różne operacje
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Operacje na plikach (niskiego poziomu) < IO.H >
OPERACJE WEJŚCIA WYJŚCIA (część b) Operacje wejścia / wyjścia odczyt i zapis danych do róŝnych zewnętrznych urządzeń lub nośników pamięciowych komputera: np. klawiatury, ekranu monitora, dyskietki, czytnika
Język C++ zajęcia nr 1
I. Programowanie obiektowe Język C++ zajęcia nr 1 Zasadniczą cechą programowania obiektowego jest łączne rozpatrywanie zagadnień dotyczących algorytmów i struktur danych. Wyrazem tego jest zmiana w sposobie
jest mocny, skoro da się w nim wyrazić nowe pojęcia; łatwiej przenieść go na nową platformę jest mniejszy.
Wejście-wyjście Nie jest elementem języka C++ Niezbyt istotne dla użytkownika, ważne dla języka: jest mocny, skoro da się w nim wyrazić nowe pojęcia; łatwiej przenieść go na nową platformę jest mniejszy.
Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe
Wstęp do programowania obiektowego Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe 1 PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI W C++ 2 W C++
Wykład 2 Operacje wejściawyjścia. Ewa Gajda
Wykład 2 Operacje wejściawyjścia w C++ Ewa Gajda Strumienie Operacje wejścia-wyjścia w C++ realizowane są przy pomocy tak zwanych strumieni. Strumieo można sobie wyobrażad jako ciąg znaków bądź bajtów
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
Spis treści OPERACJE WEJŚCIA-WYJŚCIA W JĘZYKU C++. STEROWANIE FORMATEM, MANIPULATORY. Informatyka 2
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
Pliki wykład 2. Dorota Pylak
Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Referencje. Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Zaawansowane Programowanie Obiektowe. Informacje organizacyjne:
Referencje Informacje organizacyjne: Wykład: środy, 13:15 14:45 Strona główna www z komunikatami dla ZPO: http://troja.uksw.edu.pl/category/zpo2017/ Zaawansowane Programowanie Obiektowe E-mail: k.trojanowski@uksw.edu.pl
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 13.11.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 13.11.2006 157 / 201 Wejście-wyjście Nie jest elementem języka C++ Niezbyt
Język C i C++. Podstawy. Zagadnienia do opanowania. Przykład 1. (modyfikuj kod, aby zrealizować punkty 5., 7.)
Język C i C++. Podstawy Materiały do samodzielnego opanowania, ale także propozycja zadań na zajęcia laboratoryjne Zagadnienia do opanowania 1) Czym jest standardowe wejście-wyjście (stdio)? 2) Czym może
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA
Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,
Funkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych
Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Przykłady wykorzystanie funkcji printf i scanf do wyświetlania danych na wyświetlaczu LCD oraz komunikacji sterownika mikroprocesorowego
1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE
1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
C++ - strumienie. Strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie. Formatowanie strumieni wyjściowych
Formatowanie strumieni wyjściowych Każda klasa reprezentująca strumień ma tzw. flagi, opisujące stan strumienia. W szczególności sposób działania operatorów we/wy określony jest aktualnym stanem flag stanu
Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!
Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja! Krzysztof Grudzień kgrudzi@kis.p.lodz.pl! Zbigniew Chaniecki zch@kis.p.lodz.pl 1 program zajęć - wykład Podstawowe pojęcia
Funkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24
Programowanie w C++ Wykład 11 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24 Strumienie Strumień bajtów płynacy od źródła do ujścia: 1 standardowe strumienie wejściowe
Tablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Wstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Tablice wielowymiarowe inaczej Efekt tablicy wielowymiarowej można uzyskać definiując tablicę jednowymiarową odpowiedniego
Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Programowanie w językach wysokiego poziomu
Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie STRUMIENIE
STRUMIENIE Motywacja wprowadzenia nowej biblioteki strumieni: W języku C istnieje intepreter odpowiedzialny za analizę łańcucha formatującego podczas wykonywania programu oraz pobierający zmienną liczbę
KURS C/C++ WYKŁAD 1. Pierwszy program
KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji
ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 4 : Napisy. Tablice dwuwymiarowe. Formaty
Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Wstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 2 Stałe całkowite inne niż dziesiętne Stałe ósemkowe Stałe szesnastkowe Aby wskazać czy dane maj a
Języki i metody programowania. Omówienie języków C, C++ i Java
Języki i metody programowania Omówienie języków C, C++ i Java Język C Język programowania ogólnego przeznaczenia Historia: M. Richards - BCPL - lata 60-te ubiegłego stulecia K. Thompson - B dla UNIX (DEC
PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie STRUMIENIE
STRUMIENIE Motywacja wprowadzenia nowej biblioteki strumieni: W języku C istnieje intepreter odpowiedzialny za analizę łańcucha formatującego podczas wykonywania programu oraz pobierający zmienną liczbę
Powtórka algorytmów. Wprowadzenie do języka Java.
Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy
Wykład 9 2014-06-20 09:37 PP2_W9
Wykład 9 Przykłady programów z wykorzystaniem klas - przykład funkcji operatorowych - obiektowa implementacja listy jednokierunkowej kopiowanie obiektów - klasa "latający napis" Pozycjonowanie w plikach
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH
Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach
Stałe i zmienne znakowe. Stała znakowa: znak
Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby
Język C++ Różnice między C a C++
Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci
Język C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Język C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
Pytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Wykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2
Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone
Języki programowania - podstawy
Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
tablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Programowanie strukturalne. dr inż. Tadeusz Jeleniewski
Wykład 2 Wejście i wyjście - funkcje scanf i printf Operator przypisania prostego Operatory arytmetyczne Kolejność wykonywania operacji Operatory przypisania arytmetycznego Operatory inkrementacji/dekrementacji
Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.
programowaniu Wykład: 3 Budowa programu Operacje we/wy Instrukcje wyboru 1 Podstawowe pojęcia Środowisko programistyczne Kod źródłowy - program napisany w języku takim jak Pascal lub C++,czyli w języku
Języki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia