std

Transkrypt

std
MATERIAŁY POMOCNICZE
DO PRACOWNII Z PRZEMIOTU „INFORMATYKA 2”
cerr - związany ze standardowym urządzeniem, na które chce się wypisywać
komunikaty o błędach (ekran) - strumień niebuforowany.
clog - związany ze standardowym urządzeniem, na które chce się wypisywać komunikaty
o błędach (ekran) - strumień buforowany.
Program w języku C++:
Operatory << i >>:
#include <iostream>
- operator odpowiadający za wysyłanie informacji do strumienia, nazywany jest
często operatorem insert - wstawienia (albo put to).
>> - operator odpowiadający za wczytywanie informacji, nazywany jest operatorem
ekstrakcji (extract operator) lub operatorem get from.
<<
int main()
{
std::cout << "Witaj swiecie!" << std::endl;
system("pause");
}
Przykłady wyświetlania informacji na ekranie:
std:: przed nazwami identyfikatorów cout i endl oznacza, że pochodzą one
z biblioteki standardowej (dokładniej - pochodzą z tzw. przestrzeni nazw std).
endl - przejście do nowego wiersza, odpowiada "\n" w języku C.
w celu uniknięcia ciągłego pisania std:: przed nazwami identyfikatorów umieszcza się
w programie dyrektywę: using namespace std;
Załóżmy, że mamy w programie następujące deklaracje zmiennych (wraz z inicjalizacją):
int
x = 10, y = 25;
float z1 = 1.1234567, z2 = 11.234567;
char txt[10]="Napis";
o
wyświetlenie wartości zmiennej x typu int:
cout << x;
#include <iostream>
o
using namespace std;
10
wyświetlenie wartości zmiennej x typu int poprzedzonej tekstem "x = ":
cout << "x = " << x;
int main()
{
cout << "Witaj swiecie!" << endl;
system("pause");
}
o
o
wyświetlenie dwóch zmiennych, x i y, typu int, pomiędzy wyświetlonymi
liczbami nie ma żadnego odstępu gdyż nie został on wstawiony do strumienia:
cout << x << y;
Strumienie:
x = 10
1025
wyświetlenie dwóch zmiennych, x i y, typu int oddzielonych znakiem spacji:
cout << x << " " << y;
Operacje wejścia/wyjścia w języku C++ zrealizowane zostały na strumieniach.
Wprowadzanie i wyprowadzanie informacji można potraktować jako strumień bajtów
płynących od źródła do ujścia.
Strumienie w C++ realizowane są na zasadzie klas.
Wykorzystanie strumieni wymaga dołączenia pliku nagłówkowego iostream:
#include <iostream>
zamiast
o
10 25
wyświetlenie dwóch zmiennych, x i y, typu int oraz dodanie przejścia do nowego
wiersza (endl):
cout << x << " " << y << endl;
o
#include <stdio.h>
wyświetlenie zmiennej z1 typu float, domyślnie wyświetlanych jest sześć
pierwszych znaczących cyfr:
cout << z1 << " " << z2 << endl;
Predefiniowane strumienie w C++:
o
cout - związany ze standardowym urządzeniem wyjścia (ekran), skrót od ang. C-onsole
OUT-put.
cin - związany ze standardowym urządzeniem wejścia (klawiatura), skrót od ang.
C-onsole IN-put.
Informatyka 2 - Pracownia
Strona 1 z 4
© 2009 Jarosław Forenc
1.12346 11.2346
wyświetlenie łańcucha znaków z przejściem do nowego wiersza:
cout << txt << endl;
o
10 25
Napis
jako przejście do nowego wiersza możemy zastosować też znak "\n":
cout << txt << "\n";
Informatyka 2 - Pracownia
Napis
Strona 2 z 4
© 2009 Jarosław Forenc
Przykłady wczytywania informacji:
hex
dec
oct
Załóżmy, że mamy w programie następujące deklaracje zmiennych:
int x, y;
float z;
o
int x = 100;
cout << x << " " << hex << x << " " << oct << x;
100 64 144
wczytanie zmiennej x typu int:
cin >> x;
o
- określają sposób wyświetlania / wczytywania liczb (hex - system
szesnastkowy, dec - system dziesiętny, oct - system ósemkowy)
wczytanie zmiennych x i y, typu int:
flush
- opróżnienie bufora
endl
- przejście do nowego wiersza (równoważne: ”\n” i flush)
showpoint
noshowpoint
- pokazywanie nieznaczących zer i kropki dziesiętnej
cin >> x >> y;
o
wczytanie zmiennej x typu int i zmiennej z typu float:
cin >> x >> z;
float x = 10;
cout << showpoint << x << " " << noshowpoint << x;
Ogólne zasady dotyczące wyświetlania danych:
Liczby całkowite wyświetlane są w systemie dziesiętnym.
Zmienne typów char, unsigned char wyświetlane są jako pojedyncze znaki.
Liczby zmiennoprzecinkowe typów float, double wyświetlane są z dokładnością do 6
cyfr (6 cyfr części całkowitej i ułamkowej, bez zbędnych zer).
Wskaźniki wyświetlane są w systemie szesnastkowym.
Zmienne typów char *, unsigned char * wyświetlane są jako łańcuchy znaków.
showpos
noshowpos
Ogólne zasady dotyczące wczytywania danych:
fixed
scientific
- wyświetlanie 0x na początku liczby w systemie szesnastkowym
i 0 na początku liczby w systemie ósemkowym
Są to specjalne wartości, które można wstawić do strumienia po to, aby wywołać
zamierzony efekt uboczny polegający na zmianie sposobu formatowania.
Manipulatory działają trwale (nie dotyczy to manipulatora setw).
Informatyka 2 - Pracownia
Strona 3 z 4
© 2009 Jarosław Forenc
10.123456
1.012346e+001
Kolejne manipulatory wymagają dołączenia pliku nagłówkowego iomanip.
setw(int)
setfill(char)
- ustawia szerokość wyświetlania liczb lub wczytywania tekstów
(dotyczy tylko najbliższej operacji wejścia/wyjścia)
- ustawia znak będący wypełnieniem
Manipulatory:
a 0xa
- notacja dziesiętna / wykładnicza (format naukowy)
float x = 10.123456;
cout << fixed << x;
cout << scientific << x;
Funkcje składowe klasy ios: setf, unsetf ustawiające odpowiednie flagi.
Funkcje składowe klasy ios zmieniające towarzyszące im parametry, np. szerokość,
precyzję, itp.
Manipulatory.
+10 10
int x = 10;
cout << hex << x << " " << showbase << x;
Białe znaki (spacja, tabulacja, enter) są ignorowane.
Liczby wczytywane są w systemie dziesiątkowym.
Nie można umieszczać spacji pomiędzy znakiem liczby a jej wartością.
Wczytywanie liczby całkowitej jest kończone, gdy napotkany znak nie jest cyfrą.
W liczbach zmiennoprzecinkowych nie może występować spacja w środku.
Wczytywanie tekstów jest kończone po napotkaniu pierwszego białego znaku.
Metody zmiany sposobu wyświetlania znaków:
- wyświetlanie znaku liczby dodatniej
float x = 10;
cout << showpos << x << " " << noshowpos << x;
showbase
noshowbase
10.0000 10
setprecision(int)
Informatyka 2 - Pracownia
- określa dokładność wyświetlania liczb
zmiennoprzecinkowych:
- dla fixed - ilość miejsc po kropce
- dla scientific - dokładność cechy (ale nie wykładnika)
- dla „trybu krótkiego” - łączna ilość cyfr przed
i po kropce dziesiętnej
Strona 4 z 4
© 2009 Jarosław Forenc