Wie setzte ich ein Positions Zeiger? wenn ich a+ benutze
-
So,
Ich habe ein Programm, was mir Wörter in eine Datei schreibt. Als letzes wort gebe ich "ende" ein, damit das programm weis wann schluss ist.
So, jetzt habe ich das problem, dass wenn ich was neues anhängen will ( a+ )
,dass er dann hinter dem "ende" schreibt..er soll aber bei ende anfangen also überschreiben.Wie kann ich also den Zeiger ein oder 2 Char werte nach vorne bewegen, so dass "ende " überschriben wird?
Wenn nicht mit a+...vielleicht dann mit SEEK_CUR...aber davcon hab ich keine ahnung..
koennt ihr mir mal ein paar Tips geben
so sieht mein char wert aus
fwrite(Land1[x],sizeof(char),max_string_laenge,fhd);
-
Ok andere Frage,
Wie lese ich aus einer datei aus?
Also genauer gesagt weis ich das ja aber woher weis die funktion
wie lang die Datei ist..also wie viele Werte (strings) in der datei stehen ?
-
datei-pointer auf das e von ende setzen.
SEEK_END - (3 oder 4); // weiß grad net wie der das rechnet
und dort dann weiterschreibenMeep Meep
-
Das ist ja das bloede..wie sieht die Zeile denn aus?
Reicht es wenn ich
fseek(fhd,-20,SEEK_END);
mache
weil 1 string ist 20 lang
.................................................
Aber bei mir überschreibt er immer wieder alles.
ich hab das sovoid SCHREIBEN(char** Land1,char** Stadt1,int zaehler) { FILE *fhd; fhd=fopen("c:\\P12A1.txt","w+"); int x=0; fseek(fhd,-40,SEEK_END); for(x=0;x<=zaehler;x++) { fwrite(Land1[x],sizeof(char),max_string_laenge,fhd); fwrite(Stadt1[x],sizeof(char),max_string_laenge,fhd); } fclose(fhd); read(zaehler); }
-
So, jetzt hab ichs
Ich muss die datei mit
fhd=fopen("c:\\P12A1.txt","r+");
und nicht mit
fhd=fopen("c:\\P12A1.txt","w+");
oeffen.
Kann mir mal einer erklären, was daran anders ist.
Also bei w+ wurde immer alles überschrieben und nur das neu geschriebene stand dort.bei r+ kann ich was drann hängen ohne das der rest gelöscht wird.
Also was ist der genau unterschied zwischen r+ und w+ ?????
-
Den Unterschied kannst Du z.B. hier nachlesen: http://www.hmug.org/man/3/fopen.html
Wenn Du die Datei mit w+ öffnest, wird sie neuerstellt, wenn sie bisher nicht existiert hat, ansonsten überschrieben.
Wenn Du sie mit r+ öffnest, wird sie nicht überschrieben.