Tiedon lukeminen ja kirjoittaminen tietovirtojen (stream) avulla
Koska C++ on olio-ohjelmointikieli, on tietostojen käsittely tehty
oliomaiseksi mukaiseksi. Ideana on että ohjelmoija luo tietovirran,
josta voidaan lukea tai johon voidaan kirjoittaa tietoa.
Käyttö: #include <fstream>
using namespace std; int main() { const char nimi[] = "testitiedosto.txt"; ifstream fi(nimi); // Luodaan tietovirta (stream) luettavalle tiedolle. int muuttuja; fi >> muuttuja; // Luetaan tietoa tietovirrasta muuttujaan. fi.close(); // Suljetaan tietovirta. ofstream fo(nimi); // Luodaan tietovirta (stream) kirjoitettavalle tiedolle. const char lauseke[] = "jotain tekstiä..."; fo << lauseke; // Kirjoitetaan lauseke tietovirtaan. fo.close(); // Suljetaan tietovirta. } Esimerkissä tapahtuu:
Parametrit (ei pakollisia) annetaan muodostimelle, tiedostonimen jälkeen: fstream tvirta("tiedosto.txt", ios::out |
ios::app);
Tämä avaa tiedosto.txt nimisen tiedoston
kirjoitusmoodissa siten, että uusi teksti lisätään olemassa olecvan
loppuun.
Avatun tietovirran testaaminen On tärkeätä selvittää onnistuiko tietovirran avaaminen. Tämä tapahtuu good()-funktion avulla: if (!tvirta.good()) {
cerr << "Virhe: tiedosto.txt avaaminen epäonnistui!" << endl; exit(1); } Tämä esimerkki tulostaa virhetilanteessa tekstin ja lopettaa ohjelman toiminnan. Avatun tietovirran koon selvittäminen Yksi yleinen tehtävä on selvittää avatun tiedoston koko. Tämä tapahtuu C++:n tietovirroilla seuraavasti (olettaen että
fi on
ifstream-tietovirta):
fi.seekg(0, ios::end);
int koko = fi.tellg(); fi.seekg(0, ios::beg); Tämä esimerkki tallentaa koko-muuttujaan tiedoston koon ja siirtää osoittimen tiedoston alkuun. |
C++-kieli >