Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Lesen aus Datei(c/++)

Diablokiller999 / 4 Antworten / Baumansicht Nickles

Hi Guys,ich bin am verzweifeln,ich will auf einer per fprintf geschriebenen Datei die Werte lesen,in ein Array speichern und ausgeben lassen.Nur habe ich keinen blassen Schimmer wie das gehen soll.Hier das Progrämmchen:


void schreiben(int y[])
{ int i;
FILE *z;
z=fopen("highscore.txt","w");
for (i=0;i {
fprintf(z,"%d\\n",y[i]);
}
fclose(z);
}

int main(void)
{ int i,y[10];

for (i=0;i {scanf ("%d",&y[i]);
};
schreiben(y);
//Hier Lese-Funktion einfügen
return 0;
}

Klappt soweit Alles gut,aber könnte mir eventuell jemand eine "lese" Funktion einbauen die aus der highscore.txt liest und die Werte auf dem Bildschirm ausgibt?

bei Antwort benachrichtigen
thomas woelfer Diablokiller999 „Lesen aus Datei(c/++)“
Optionen

was ist denn konkret dein problem ?

WM_QUERY

[Diese Nachricht wurde nachträglich bearbeitet.]

this posting contains no tpyos.
bei Antwort benachrichtigen
Diablokiller999 thomas woelfer „Lesen aus Datei(c/++)“
Optionen

Ich möchte eine Funktion in der aus der highscore.txt gelesen,in ein Array gespeichert und der Inhalt ausgegeben wird.Jedoch habe ich keine Ahnung mit welchen Befehlen usw.
Deswegen wäre es ganz gut wenn jemand als Beispiel mein Programm mit der Funktion editieren könnte damit ich n Beispiel habe wie des auszuschauen hat.

bei Antwort benachrichtigen
martinx24 Diablokiller999 „Lesen aus Datei(c/++)“
Optionen

Hallo!
Hier mal meine Lösung des Problems:

#include &ltstdio.h>
#include &ltstdlib.h>
#include &lttime.h>

void zahlen_eingeben(void);
void kontrolle(void);
void schreiben(void);
void array_ueberschreiben(void);
void lesen(void);
void warten(int zeit);

int array[10];



int main(void)
{
zahlen_eingeben();
kontrolle();
schreiben();
array_ueberschreiben();
kontrolle();
lesen();
kontrolle();

return 0;
}



void zahlen_eingeben(void) //Eingabe von zehn Integer-Werten
{
for (int i=0;i {
printf("Bitte Zahl %d eingeben:\\n",i+1);
scanf ("%d",&amparray[i]);
fflush(stdin);
}
}

void kontrolle(void) //Kontrollausgabe der eingegebenen Werte auf dem Bildschirm
{
printf("\\n\\n***** Kontrollausgabe - Start *****\\n\\n");
for (int i=0;i {
printf("Zahl %d: \\t%d\\n",i+1,array[i]);
}
printf("\\n***** Kontrollausgabe - Ende *****\\n");
}

void schreiben(void) //Schreiben der Integer-Werte in eine Datei
{
FILE *ausgabe;
if ((ausgabe=fopen("c:\\\\highscore.txt","w"))==NULL) //Ist ein Fehler beim Öffnen aufgetreten?

{
fprintf(stderr,"\\nFehler beim Oeffnen der Datei!\\n");
warten(3);
exit(-1);
}

for (int i=0;i {
fprintf(ausgabe,"%d\\n",array[i]);
}

if(fclose(ausgabe)==-1) //Konnte die Datei wieder problemlos geschlossen werden?
{
fprintf(stderr,"\\nFehler beim Schliessen der Datei - Datenverlust moeglich!\\n");
warten(3);
exit(-1);
}
}

void array_ueberschreiben(void)
{
for (int i=0;i {
array[i]=0;
}
}

void lesen(void)
{
FILE *eingabe;
if ((eingabe=fopen("c:\\\\highscore.txt","r"))==NULL) //Ist ein Fehler beim Öffnen aufgetreten?

{
fprintf(stderr,"\\nFehler beim Lesen der Datei!\\n");
warten(3);
exit(-1);
}

for (int i=0;i {
fscanf(eingabe,"%d",&amparray[i]);
}

if(fclose(eingabe)==-1) //Konnte die Datei wieder problemlos geschlossen werden?
{
fprintf(stderr,"\\nFehler beim Schliessen der Lesedatei - Datenverlust moeglich!\\n");
warten(3);
exit(-1);
}
}


void warten(int zeit) //Wartefunktion
{
clock_t ziel;
ziel=(zeit*CLOCKS_PER_SEC)+clock();
while(ziel>clock())
;
}


Have a nice day!
Martin!

bei Antwort benachrichtigen
Diablokiller999 martinx24 „Hallo! Hier mal meine Lösung des Problems: include ltstdio.h include ltstdlib.h...“
Optionen

THX,habe es nun einigermaßen gerallt.Aber warum so umständlich,des hier hätte gereicht:

void lesen()
{int i,a[10];
FILE *z;
z=fopen("highscore.txt","r");
for (i=0;i {fscanf(z,"%d",&a[i]);
printf("%d\n",a[i]);
};
}

Warum einfach wenns auch kompliziert geht^^

THX nochmal

bei Antwort benachrichtigen