W jaki sposób zapisać i odczytać dane z pliku tekstowe w C++?
Najpierw przykładowy kod potem przyjdzie czas na opis:
#include <iostream>
#include <fstream> // 1
using namespace std;
void odwroc(string napis)
{
for (int i = napis.length(); i >= 0 ; i-- )
{
cout << napis[i];
}
}
int main()
{
fstream plik; // 2
plik.open("test.txt",ios::in); // 3
if(plik.good()) // 4
{
cout<<"otwarto plik\n";
string tekst;
while( !plik.eof() ) // 5
{
getline( plik, tekst ); // 6
odwroc(tekst);
cout <<endl<< tekst << endl;
}
plik.close(); // 7
}else if (plik.bad()) cout << "blad otwarcia" << endl; // 4
fstream zapis("test.txt", ios::app|ios::out); // 8
if (zapis.good())
{
string tekst;
cout << "wpisz tekst do zapisania w pliku:";
getline(cin, tekst); // 9
zapis << tekst; // 10
zapis.flush();
zapis.close(); // 7
}
return 0;
}
1. Wczytujemy podstawową biblioteką do obsługi plików w C++ - fstream.
2. Inicjujemy zmienną która będzie komunikowała się z naszym plikiem
3. Otwieramy plik test.txt w trybie do odczytu - ios::in
4. W zależności od tego czy plik został poprawnie otwarty wyświetlamy odpowiedni komentarz, i wykonujemy operacje na nim tylko jeśli został poprawnie otwarty.
5. Odczytujemy zawartość pliku - while (!plik.eof()) - wykonuj instrukcje dopóki(while) nie jesteś(!) na końcu pliku (plik.eof())
6. Odczyt całej linii(wiersza) tekstu
7. Funkcja zamykająca plik
8. Inicjacja zmiennej wraz z nadaniem jej parametrów: plik do otwarcia "test.txt" w trybie dopisywania (ios::app) i zapisu (ios::out)
9. Pobranie tekstu z konsoli do zmiennej tekstowej.
10. Zapis do pliku przy pomoc strumienia << analogicznie jak cout wypisuje na ekranie tekst
bardzo przydatne Suuperrrr!!!!!!
OdpowiedzUsuńGenialne :>
OdpowiedzUsuń