Hvordan spare en Vector til en fil i C ++

Hvordan spare en Vector til en fil i C ++


Vektoren klasse i C ++ Standard Template Library tjener som et alternativ til den enkle matrisen. De er nesten like raskt som vanlige arrays, men de inneholder effektive funksjoner for å legge til og fjerne elementer fra matrisen og skaleres dynamisk når det trengs. En nyttig medlem av vektoren klassen er iteratoren, som i stor grad forenkler prosessen med å iterere gjennom alle elementene som er lagret i vektoren ved hjelp av en for-løkke. Den andre verktøy som brukes vil være ofstream objekt i fstream bibliotek, som vil la deg bruke enkle "<<" operatør for fil utgang.

Bruksanvisning

1 Lag et C ++ fil som heter "vectorToFile.cpp". For denne oppgaven, vil tre bibliotekene være nødvendig: fstream gir funksjonalitet for fil I / O, gir iostream funksjonalitet for I / O til standard inn og ut, som vil bli omdirigert fra konsollen til en fil i denne aktiviteten, og vektor gir vektor klasse. Så starter med følgende erklæringer: <br /> <br /> #include <fstream> <br /> # Include <iostream> <br /> # Include <vector> <br /> bruker namespace std;

2 Definer VectorToFile klassen. Denne klassen vil være litt forenklede. Det vil holde en vektor og en funksjon for å lagre vektor til en fil <br /> <br /> klasse VectorToFile {<br /> publikum. <br /> Vector <int> v <br /> GO <br / > <br /> VectorToFile () {<br />} <br /> GO <br /> <br /> ugyldig saveToFile () {<br />} <br /> GO <br />};

3 Skriv saveToFile () -metoden. Legg til følgende linjer med kode, i rekkefølge, til saveToFile () -metoden. Først får filnavnet fra brukeren ved hjelp av standard CIN og domstol kommandoer, som så: <br /> <br /> røye filnavn [20] <br /> GO <br /> domstol << \ "Skriv inn navnet på filen du vil bruke: \ "<br /> GO <br /> cin >> filnavn <br /> GÅ <br /> <br /> Deretter initialisere ofstream, eller output file stream, med filnavnet og "ios :: out". Dette vil informere ofstream å være åpen for utdata. Andre mulige alternativer ville være "ios :: app", som instruerer strømmen for å legge data i stedet for å overskrive det og "ios: binære"., Som instruerer strøm til produksjonen i binær stedet for tekst <br /> <br /> ofstream vectorFile (filnavn, ios :: out) <br /> GO <br /> <br /> til slutt iterere gjennom utvalget, ved hjelp av iterator gjenstand for vektor. <br /> <br /> std :: vector <int> :: iterator jeg <br /> GÅ <br /> for (i = v.begin (); i <v.end (); ++ i) {<br /> vectorFile << * i <br /> GO <br /> vectorFile << endl <br /> GO <br />}

4 Lag en hovedfunksjon å teste klassen. Utenfor klassen, erklærer den viktigste funksjonen som følger: <br /> <br /> int main () {<br /> VectorToFile VTF <br /> GO <br /> vtf.v.push_back (121) <br / > GO <br /> vtf.v.push_back (144) <br /> GO <br /> vtf.v.push_back (653) <br /> GÅ <br /> <br /> vtf.saveToFile () < br /> GO <br /> <br />} <br /> GÅ <br /> <br /> kompilere og kjøre den nye C ++ program. Input et filnavn når du blir spurt.