problem beim endlosen auslesen einer aktualisierten datei



  • hallo, ich möchte eine txt-datei einlesen und ausgeben!
    doch wenn die datei ende ist soll das programm nicht aufhörern sondern
    warten da die auszulesende datei aktualisiert wird!

    ich hab dazu dieses programm:

    #include <stdio.h>
    #include <windows.h>
    
    int main()
    {
    	FILE *stream;
    	int a;
    
    	stream=fopen("c:\\test.txt","r");
    
    	while(1)
    	{
    		a=fgetc(stream);
    		printf("%c",a);
            Sleep(100);
    	}
    
    	//fclose(stream);
    
    	//return 1;
    }
    

    das auslesen klappt auch perfekt! nur nach einem "feof(stream)" wo ein
    "normales" programm beenden würde werden leerzeichen ausgegeben!

    wenn die datei dann aktualisiert wird wird das neue auch ausgegeben, jedoch
    auch alle 200ms die nicht aktualisiert wird diese leerzeichen...

    ich hoffe ihr könnt mich verstehen und mir tipps geben wie
    ich das problem mit den leerzeichen lösen kann!

    danke schonmal!

    DerBabel

    p.s: ich kann leider nicht alle leerzeichen einfach rausfiltern da die normalen
    sachen in der datei auch leerzeichen enthalten!



  • mal gebastelt, ohne gewähr

    while (1){
    		while( (a=fgetc(stream))!= EOF)
    		{     
    			printf("%c",a);
    			Sleep(100);
    
    		}
    	}
    


  • elise schrieb:

    mal gebastelt, ohne gewähr

    while (1){
    		while( (a=fgetc(stream))!= EOF)
    		{     
    			printf("%c",a);
    			Sleep(100);
    			
    		}
    	}
    

    könnte funktionieren, da dein Programm wenn es am ende der datei ist immer wieder das EOF zeichen ausliest. da dies kein druckbares zeichen ist werden anscheinend leerzeichen ausgegeben



  • yap klappt!

    thx, Babel


Anmelden zum Antworten