#include <iostream>
#include "moja.h"
int max(int a, int b);
int dlugosc(const char* s);
#include "bib.h"
int max(int a, int b) {
if(a>b)
return a;
else
return b;
}
int dlugosc(const char* s) {
int i;
for(i=0; s[i]; ++i);
return i;
}
#include "bib.h"
Do czytania i pisania na plikach służą klasy zadeklarowane w bibliotece fstream.
ifstream nazwa_strumienia(nazwa_pliku);Następnie można z tego strumienia czytać w sposób analogiczny jak ze strumienia cin. Oprócz operatora >> można korzystać z metod (funkcji) m.in. open (służy do otwierania strumienia jeśli nie został podany parametr przy deklaracji), get, getline (do wczytywania pojedynczych znaków oraz całych linii), eof (sprawdza, czy osiągnięto koniec pliku) oraz fail (sprawdza, czy następna operacja może zakończyć się powodzeniem). Pełną listę funkcji można znaleźć w plikach pomocy. Oto funkcja, która wypisuje na ekran zawartość pliku o podanej nazwie:
void fileToScreen(const char* name) {
ifstream ifile(name);
while(ifile) { // lub !(ifile.eof())
char c;
ifile.get(c);
cout << c;
}
}
ofstream nazwa_strumienia(nazwa_pliku);w zależności od tego, czy chcemy pisać w pliku od początku czy dopisać fragment na końcu. Zestaw dostępnych metod jest podobny - z tą różnicą, że zamiast funkcji get używamy put. Oto funkcja, która wpisuje (dopisuje) do pliku dane wczytane z klawiatury:
ofstream nazwa_strumienia(nazwa_pliku, ios::app);
void screenToFile(const char* name, bool append=false) {
ofstream ofile;
ofile.open(name, append ? ios::app : ios::out);
char s[100];
do {
cin.getline(s, 100);
ofile << s << endl;
} while(s[0]);
}
>kopiuj.exe in.txt out.txtŻeby uzyskać w programie dostęp do argumantów, należy zadeklarować funkcję main następująco:
int main(int argc, char** argv)Liczba argumentów będzie zapisana w zmiennej argc, natomiast same parametry są zapisane w argv (jest to tablica napisów, która ma argc elementów). Pierwszy argumentem jest zawsze nazwa wykonywanego pliku. Oto przykładowy program, który wypisuje na ekran argumentu wywołania:
#include <iostream>
int main(int argc, char** argv) {
for(int i=0; i<argc; ++i)
std::cout << i << " " << argv[i] << std::endl;
}