Argumenty funkcji main
Transkrypt
Argumenty funkcji main
Wprowadzenie do programowania i programowanie obiektowe Wirtotechnologia Zajęcia nr 10 autor: Grzegorz Smyk Wydział Odlewnictwa Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo – Hutnicza im. Stanisława Staszica w Krakowie, Rok akademicki: 2015/2016 Informacje teoretyczne Struktury - budowa Przykład budowy: struct nazwa { // definicja struktury typ1 element1; typ2 element2; … // pola elementów // struktury }; nazwa obiekt; // deklaracja obiektu Argumenty funkcji main Dla funkcji main: int main (int argc, char* argv[]), argc – argument counter – ilośc argumentów argv – argument value – ścieżka oraz argumenty. char* argv[] – jednoznaczne z char** argv - jest tablicą wskaźnikową dwuwymiarową, gdzie wprowadzając do programu jakieś zmienne, zapisuje zawsze liczbę zmiennych argc, a potem jakie zmienne do argv, np.: argc zawsze = 1, gdzie argv[0] = nazwa programu/ ścieżka+nazwa programu uruchomienie programu: ./program boo foo hii to argc = 4, po kolei argv = {„program”, „boo”, „foo”, „hii”} Argumenty funkcji main #include <iostream> using namespace std; int main(int argc, char* argv[]) { cout<<"nazwa programu: " <<argv[0]<<endl; cout<<"ilosc argumentow: "<<argc<<endl; for(int i=1; i<argc; i++) { cout<<"Argument "<<i<<" to: "<<argv[i]<<endl; } Program wywołuje się z konsoli: <nazwa_programu>.exe b 20 „t o” kaczka system("pause"); return 0; } Zawsze argv[0] przechowuje nazwę programu! Operacje wejścia / wyjścia Do obsługi plików przy pomocy języka c++ należy wykorzystać bibliotekę fstream. #include <fstream> void open( const char * nazwa_pliku, ios_base::openmode tryb_otwarcia_pliku ); Przykład: Wykorzystanie: std::fstream plik; std::fstream plik; plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::out ); Operacje wejścia / wyjścia Pobieranie danych z pliku w Funkcja eof() – end of zależności od ich typu: file. Funkcja zwróci true gdy nie będzie już w pliku więcej danych do odczytu char znak; string slowo, wiersz; plik.get(znak); plik>>slowo; getline( plik, wiersz ); while( !plik.eof() ) { getline(plik, wiersz); cout<<wiersz<<endl; } #include<iostream> #include<fstream> using namespace std; int main() { ifstream S; S.open("napis1.txt"); if (!S.good()) { cout<<"Nie ma pliku"<<endl; return 0; } S.seekg(0, ios::end); cout<<S.tellg()<<endl; return 0; } Przykład: Zapis: fstream plik("tekst.txt", ios::out); if( plik.good() ) { for(int i=0; i<10; i++) { plik << „\nIteracja: ” <<i; } } plik.close(); Odczyt: fstream plik; plik.open( "nazwa_pliku.txt", ios::in | ios::out ); if( plik.good() == true ) { cout<<"Uzyskano dostep do pliku!"<<endl; //tu operacje na pliku plik.close(); } else cout<<„Błąd!"<<endl; Zadania Zadania: 1. Napisz program, który zostanie uruchomiony poleceń z argumentami „Imię i nazwisko”. Program, ma wyświetlić komunikat: z linii Witam Szanownego [Pana/Panią] <imię>+[a/e]! w programie <nazwia programu> w dniu <data>. Sprawdź ostatnią literę imienia w celu rozróżnienia płci, dodaj literę na końcu w przypadku mężczyzn „a”, „e” w przypadku kobiety. Obsłuż wyjątek imienia Marek. Obsłuż przypadek gdy użytkownik poda za mało lub za dużo argumentów. Zadania: 2. Przekaż do programu szereg argumentów. Wyświetl na ekranie najdłuższy wyraz. 3. Napisz program, uruchomiony z dwoma argumentami, a następnie przy pomocy instrukcji warunkowej switch pozwoli wykonać podstawowe operacje arytmetyczne. 4. Utwórz strukturę student i uzupełnij ją danymi podanymi przy pomocy argumentów. Struktura zawiera takie elementy jak: - Imię, nazwisko, wiek Przy pomocy operacji wejścia/wyjścia zapisz dane do pliku. 5. Napisz program umożliwiający odczyt informacji z pliku zapisanego w zadaniu 4. Zadania 4. Napisz program, w którym zostanie utworzona tablica dwuwymiarowa. Napisz funkcję która uzupełni tą tablicę według schematów. Do wyświetlania użyj metody std::setw(int); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: http://creativecommons.org/licenses/by-sa/3.0/deed.pl