POLITECHNIKA WARSZAWSKA
POLITECHNIKA WARSZAWSKA
Instytut Automatyki i Robotyki
Instytut Automatyki i Robotyki
ZASADY PROGRAMOWANIA KOMPUTERÓW
ZASADY PROGRAMOWANIA KOMPUTERÓW
Język programowania: C/C++
Język programowania: C/C++
Środowisko programistyczne: Builder C++ 6.0
Środowisko programistyczne: Builder C++ 6.0
Wykład 7 : Pliki - przykłady. Funkcje.
Wykład 7 : Pliki - przykłady. Funkcje.
Przykład 1 Plik jako zbiór znaków
Przykład 1 Plik jako zbiór znaków
Dany jest plik znaki.txt , zawierający ciąg znaków zakończony znakiem ? . Wydrukować
trzeci od końca znak, będący literą.
ALGORYTM z3 z2 z1
z3 z2 z1 z ( gdy z jest literą )
#include
do {
#include
dane >> z; // wczytaj znak z pliku
#include
z = toupper(z);
using namespace std;
if (z>='A' && z<='Z') { // jeśli jest literą
z3=z2;
int main() {
z2=z1;
char z, z1, z2, z3;
z1=z;
z3=z2=z1=' ';
}
ifstream dane("znaki.txt");
}
while (z !='?');
dane.close();
toupper(z) zamienia małe litery na duże
cout << "trzeci od konca: " << z3 ;
getchar();
tolower(z) zamienia duże litery na małe
return 0;
}
Przykład 2 Plik jako zbiór wierszy
Przykład 2 Plik jako zbiór wierszy
Z pliku "dane.txt" przepisać do pliku "wyniki.txt" co najwyżej n ostatnich wierszy (n -
stała). UWAGA: jeśli w pliku będzie mniej niż n wierszy, należy przepisać je wszystkie.
ALGORYTM
getline (dane, wiersz); // wczytaj pierwszy wiersz
#include while (!dane.eof()) {
licz++;
#include
if (licz#include
a[licz] = wiersz;
using namespace std;
else {
const int n=10;
for (i=0; iint main( ) {
a[i] = a[i+1]; // to się wykonuje w pętli for i
int i;
a[n-1] = wiersz; // a to już jest poza pętlą for i
string a[n];
}
string wiersz;
getline (dane, wiersz); // wczytaj kolejny wiersz
ifstream dane ("dane.txt");
}
ofstream wyniki ("wyniki.txt");
for (i=0; i wyniki << a[i]< for (i=0; i // dodając znak przejścia do nowej linii
a[i] = "";
dane. close (); wyniki. close ();
return 0;
int licz=-1;
}
Przykład 3 Plik jako zbiór wartości liczbowych
Przykład 3 Plik jako zbiór wartości liczbowych
int main() {
Dany jest plik tekstowy "wsp.txt "
const int n=100;
zawierający współrzędne (x,y) dowolnej
Tpunkt punkty[n], pkt; // tablica rekordów
liczby punktów. Wydrukować współrzędne
int lp=0; // licznik początkowy
n-tego od końca punktu (n stała).
int lc=0; // licznik cykliczny
ifstream dane ("wsp.txt");
dane >> pkt.x >> pkt.y; // pierwsze czytanie
while (! dane. eof()) {
if (lpBufor cykliczny
punkty [lp]=pkt;
lp++;
}
else {
ostatnio wpisany
punkty [lc]=pkt;
punkt
lc++;
if (lc>n-1) // gdy bufor się zapełni
n- ty od końca punkt
lc=0; // wracamy na początek
}
dane >> pkt.x >> pkt.y; // czytanie w pętli
#include
}
#include
dane. close();
#include
if (lp< n)
#include