04. oktober 2005 - 09:59
Der er
9 kommentarer og 1 løsning
Læsning af Fil
Hej! Jeg har tidligere spurgt om hvordan den kan læse flere filer ind efter hinanden i den samme fstream. Nu er mit problem bare at hvis nu en af disse filer ikke eksistere, så fejler mit program på den efterfølgende fil. Min kode ser sådan ud. if(!m_in.is_open()) printf("Filen findes ikke: "); m_in.flush(); HVordan får jeg i princippet reset min m_in ? m_in.clear(); m_in.seekg(0, ios::beg); m_in.close(); Jeg benytter også dette til at sikre at den altid starter i toppen af den nye fil! Men det løser ikke mit nuværende problem
Annonceindlæg fra Computerworld
Geopolitik i cyberspace
Mark Fiedel i Styrelsen for Samfundssikkerhed påpeger behovet for, at Danmark kigger kritisk på leverandørafhængighed.
13. juni 2025
04. oktober 2005 - 10:52
#1
hvad er problemet du forsøger at løse ? umiddelbart kan jeg nemlig slet ikke se formålet med de besværligheder
04. oktober 2005 - 11:53
#2
Jeg har et problem, med at hvis den ikke findes filen, så returner m_in.is_open falsk, den efterfølgende fil. Bliver herefter ikke åbnet korrekt, det er mit problem
04. oktober 2005 - 16:04
#3
min m_in har jeg erklæret i klassen og denne bliver ikke slettet før jeg er helt færdig! Kan den indeholde noget snavs, når den finder en fil som ikke eksistere! Hvordan får jeg den reset
04. oktober 2005 - 16:25
#4
Det kan også være nok at få reset fail() Hvordan gøres det!
04. oktober 2005 - 17:50
#5
Okay, min metode er sådan Jeg har en liste med en masse input filer, når der er en af disse filer på listen som ikke eksistere fysisk på harddisken, så går mit program koldt. Jeg har prøvet at tjekke om m_in.fail() er sand! det bliver den netop på en af disse filer, jeg kan så bare ikke få det til flag til at blive falskt igen. hvordan gør jeg dette?
04. oktober 2005 - 20:08
#6
Jeg kan ikke rigtigt se problemet. Jeg lavede et test program hvor jeg forsøger at læse første linie i en række filer, fil nummer 2 findes ikke: #include <iostream> #include <fstream> #include <string> char *Files[] = { "amove.cpp", "something.not", "goto.cpp" }; int main() { std::string S; std::ifstream In; for(size_t i = 0; i < 3; i++) { In.open(Files[i]); if(In) { std::getline(In, S); std::cout << Files[i] << ": " << S << std::endl; In.close(); } else { In.clear(); std::cout << "Failed to open: " << Files[i] << std::endl; } } } Det virker som forventet. Du kan prøve at undlade m_in.seekg(0, ios::beg); den behøves ikke, fil-pointeren vil automatisk blive sat til starten på filen.
05. oktober 2005 - 08:00
#7
Hej! nu har jeg forsøgt mig nogle forskellgie ting! Det virker fint hvis man lige bytter om på close og clear m_in.close(); m_in.clear(); m_in.seekg(0, ios::beg); Så virker det fino! Så Bertelbrander send du et svar, for at lede mig den rigtige vej
05. oktober 2005 - 08:02
#8
og så skal man lige undlade m_in.seekg(0, ios::beg); Den laver også noget snavs
05. oktober 2005 - 19:31
#9
Jeg samler ikke på point.
18. november 2005 - 18:23
#10
Lukker
Kurser inden for grundlæggende programmering