Datei öffnen



  • Hallo
    ich habe ein Problem:
    ich habe ein Programm geschrieben zum Schreiben eines Textes in eine Datei:

    void main(void)
    {
    	FILE *dateiptr;		
    	char datei[20],text[200];	
    	printf("Geben sie den Manem der zu oeffnenden Datei (max. 20 Zeichen): ");
    
    	gets(datei);		
    	dateiptr=fopen(datei,"w");	
    
    	if(dateiptr==NULL)	
    	{
    		printf("\n\nFehler beim oeffnen der Datei %s !",datei);
    		exit(1);	
    	}
    	printf("\nGeben Sie den zu speichernden Text ein (bis 200 Zeichen):\n");
    	gets(text);
    	fprintf(dateiptr,"%s",text);	
    	fclose(dateiptr);
    	Sleep(2000);	
    	printf("\n\nEs wurde die Datei %s geoeffnet.\n",datei);
    	printf("Dabei wurde volgender Text eingegeben:\n%s\n\n",text);
    	printf("\nDie Datei ist wieder geschlossen und das Programm kann beendet werden!\n\n");
    }
    

    Dort habe ich eine Datei mit der Bezeichnung "neu.txt" erstellt und einen probetext eingeschrieben.

    Danach wollte ich ein Programm schreiben, das den inhalt einer Datei ausgibt.
    Es ist nicht vertig geworden und ich würde gerne die Probleme des "auslesens" selber beweltigen, jedoch komme ich gar nicht dazu diese zu entdecken, weil das Programm die Datei nich öffnen kann...

    #include<stdio.h>
    #include<windows.h>
    
    void main(void)
    {
    	FILE *dateiptr;			
    	char datei[200],text[200];	
    	printf("Geben sie den Manem der zu oeffnenden Datei (max. 20 Zeichen): ");
    
    	gets(datei);
    
    	if((dateiptr=fopen(datei,"r"))==NULL);
    	{
    		perror ( "Unable to open the file" );
    		exit ( EXIT_FAILURE );
    	}
    	sscanf(dateiptr,"%s",text);
    	printf("Es folgt nun das was aus der Datei ausgelesen wurde:\n%s\n\n",text);
    	fclose(dateiptr);
    }
    

    Als dateinamen habe ich wieder "neu.txt" eingegeben. Ich habe herausgefunden, dass das Programm diese Datei findet, aber nicht öffnen kann.
    Bei dem "EXIT_FAILURE" kommt "no error" raus. 🙄

    Was kann ich da falsch gemacht haben? 😕 😕 😕

    Gruß GhostMan



  • printf("<%s>", datei);

    fuege das vor jedes fopen() ein und gib die ausgabe her. (ich nehme nicht an, dass du mit nem debugger mal drin warst?)



  • Debugger drinn war????
    Wie meinst du das?
    Ich bin ein absoluter neuling was C angeht....

    Ich habe übrigens das befolgt was du geschrieben hast
    er gibt den namen der datei aus "<neu.txt>" und dann wieder das selbe
    kann die datei nicht aufmachen.....
    😡



  • schreibe einfach
    char inh[1000];
    printf("%s",fgets(inh,1000,neu.txt));

    du brauchst aber stdio.h



  • das problem ist aber, dass sich die Datei nicht öffnen läßt.
    und ich habe absolut keine ahnung wieso...
    😕 😞



  • poste nochmal zwei democodes.



  • Hi
    Bei dem 2.Codbeispiel hast du um auszulesen sscanf verwendet. Das benutzt man für Strings. Benutze fscanf oder (besser und binär) fread.

    Viele Grüße



  • Also
    ich weiß immer noch nicht was da schiefgelaufen ist beim öffnen der Datei.
    Offensichtlich lag es aber eher an der Datei selber.
    Inzwischen habe ich das Programm zu Ende geschrieben und es funktioniert auch alles sehr gut.
    Ich danke hiermit allen die mir helfen wollten.


Anmelden zum Antworten