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