Mapster Skrevet 1. mai 2006 Skrevet 1. mai 2006 Jeg skal skrive ut en del informasjon i programmet mitt til en ekstern fil, men sliter litt med dette. Problemet mitt er vel at uansett hva jeg gjør så kommer alt jeg skal skrive på slutten av filen. Jeg ønsker å skrive informasjon forskjellige steder i en ekstern fil, som allerede inneholder annen informasjon. Filen åpnes med disse tagsene: "fstream::in | fstream::out | fstream::app" (Noen forskjell mellom fstream::in og ios::in?) Jeg har også prøvd med fstream::ate. Jeg bruker seekp() funksjonen til å posisjonere skrivepekeren, men uansett hvor denne er plassert så kommer det jeg skrive til filen altid på slutten. Noen som har noen forslag til løsning?
kjetil7 Skrevet 1. mai 2006 Skrevet 1. mai 2006 (endret) Har du prøvd følgende: std::ofstream out("myfile.txt", std::ios_base::out | std::ios_base::in | std::ios_base::ate); Det skal fungere. Edit: Hos meg var konstantene i fstream og ios_base de samme (og jeg vil tro de skal være det). Må være noe annet feil med koden din. Her er et lite eksempel jeg satte opp i farta: #include <iostream> #include <fstream> #include <string> int main() { std::ofstream out("myfile.txt"); out << "123456789"; out.close(); out.open("myfile.txt", std::ios_base::out | std::ios_base::in | std::ios_base::ate); out.seekp(-3, std::ios_base::cur); out << "***" << std::endl; out.close(); std::ifstream in("myfile.txt"); std::string str; in >> str; std::cout << str << std::endl; } Endret 1. mai 2006 av kjetil7
Mapster Skrevet 2. mai 2006 Forfatter Skrevet 2. mai 2006 (endret) takker Tok sin tid før jeg fant ut hva jeg gjorde feil... Problemet lå i at jeg brukte out.write(); Så til neste spørsmål, finnes det en måte å sette inn tekst uten å erstatte det som står der allerede, bortsett fra flytte teksten manuelt? edit: Har ihvertfall lagd meg en loop for flytting av tekst, mer er allikavel interressert i å vite om det eksisterer en måte å sette inn tekst uten å erstatte. Endret 2. mai 2006 av MapSter
Dead_Rabbit Skrevet 2. mai 2006 Skrevet 2. mai 2006 (endret) Prøv å åpne fila med ios::app flagget. Edit: Tror jeg, ihvertfall Endret 2. mai 2006 av zirener
kjetil7 Skrevet 2. mai 2006 Skrevet 2. mai 2006 Flagget nenvt ovenfor (app) gjør noe annet hvis dokumentasjonen min stemmer. Tror ikke dette er mulig ved hjelp uten å implementere det selv. Har i hvert fall aldri gjort det selv.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå