the_c Skrevet 12. desember 2005 Del Skrevet 12. desember 2005 Hei. Sitter og arbeider med datafiler, og har noen spørsmål. Programmet jeg skal lage, skal jobbe opp mot ei sekvensiell tekstfil som inneholder Fornavn, Etternavn og Fødselsdato på en rekke personer. Brukeren av programmet skal kunne finne fødselsnummeret til en person ved å skrive inn For- og Etternavn. Man skal også kunne legge inn flere personer i navneregisteret. Laget meg ei register.dat -fil som ser slik ut: Arne Arnesen 01.02.1975 Bjarne Bjarnesen 02.02.1989 Hans Hansen 30.01.1970 Jobber med å lage metoder som fungerer som de skal... Her er hva jeg har kommet frem til så langt: #include <iostream> #include <fstream> #include <cstdlib> #include <string> using namespace std; const string filnavn = "register.dat"; void skrivTilFil(string filnavn); void lesFraFil(string filnavn); int main() { skrivTilFil(filnavn); return 0; } //Metode for å skrive til Fil void skrivTilFil(string filnavn) { ofstream utfil; utfil.open("register.dat", ios::app); //Fortsetter på fila. if(!utfil) { cout << "Feil ved aapning av fila. Sjekk at den finnes!!"; exit(EXIT_FAILURE); } string personInfo; cout << "Skriv inn Fornavn, Etternavn og fodselsdato: "; getline(cin, personInfo); utfil << personInfo << endl; cout << personInfo << " er skrevet til fila :-) " << endl; utfil.close; } //Metode for å lese fra fil void lesFraFil(string filnavn) { string navneRegister; ifstream innfil; innfil.open(filnavn.c_str()); if(!innfil) { cout << "Feil ved aapning av innfil." << endl; exit(EXIT_FAILURE); } while(!innfil.eof()) { innfil >> navneRegister; cout << navneRegister << endl; } innfil.close; } Metoden skrivTilFil(string filnavn) - fungerer som den skal, mens metoden lesFraFil(string filnavn), ikke er helt i vater. Denne metoden gir utskriften: Arne Arnesen 01.02.1975 Bjarne Bjarnesen 02.02.1989 Hans Hansen 30.01.1970 30.01.1970 Press any key to continue Det er ikke spurt etter denne metoden i oppgaveteksten, men jeg tenkte den kunne være grei å ha. Kunne tenkt meg at utskriften kunne blitt slik: Arne Arnesen 01.02.1975 Bjarne Bjarnesen 02.02.1989 Hans Hansen 30.01.1970 Også trenger jeg en metode som finner personens fødselsdato, gitt fornavn og etternavn. Her trenger jeg virkelig hjelp. Antar at denne funksjonen tar filnavnet, personens for- og etternavn som innpapameter. Er klar over at denne oppgaven også kan løses vha en binær fil, men det skal jeg altså ikke gjøre i denne omgang. Takker for all hjelp. Lenke til kommentar
Fredrik90 Skrevet 12. desember 2005 Del Skrevet 12. desember 2005 innfil >> navneRegister; cout << navneRegister << endl; fjern endl den får linja til å hoppe ned. Legg heller den sånn at den kommer etter at det er lest inn 3 ganger hakke tid til å skrive kode, men du klarer det nok Lenke til kommentar
Peter Skrevet 12. desember 2005 Del Skrevet 12. desember 2005 Samme problem som når du leser fra konsollet. Hint: getline() Lenke til kommentar
the_c Skrevet 13. desember 2005 Forfatter Del Skrevet 13. desember 2005 Takker for tipsene bege to. Skal ta en titt på det i ettermiddag. Lenke til kommentar
GenericName Skrevet 13. desember 2005 Del Skrevet 13. desember 2005 (endret) ... Endret 12. januar 2011 av Token Lenke til kommentar
Klette Skrevet 14. desember 2005 Del Skrevet 14. desember 2005 (endret) Bruk getline(), som Nazgul nevnte.Funker fint den. Hva er poenget med å svare med "gjør det som han over sa"-type melding? Snakk om ubrukelig posting ... (nesten like mye som denne, for tror ikke den kommer til å hjelpe.. ) Endret 14. desember 2005 av Klette Lenke til kommentar
GenericName Skrevet 14. desember 2005 Del Skrevet 14. desember 2005 (endret) ... Endret 12. januar 2011 av Token Lenke til kommentar
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å