Datei öffnen und damit weiterarbeiten in anderer Funktion...



  • Moin. Ich habe hier eine Funktion die eine Datei zum lesen öffnen soll. Das klappt auch alles. Nun will ich aber in einer anderen Funktion mit der geöffneten Datei weiterarbeiten. Das bekomme ich nicht hin.
    Hier die beiden Funktionen. Die Funktion open_write soll damit weiterarbeiten.
    Irgendwie muss ich ja diesen fo zurückbekommen. Wie mache ich das am klügsten ?

    FILE *open_read(const char msg[], int bufsize, char fname[])
    {
    	int open;
    
    	open = TRUE;
    	while(open)
    	{
    		FILE *fp;
    		fp = fopen(fname,"r");
    		if(fp != NULL)
    		{
    			printf("\nDatei \"%s\" konnte geoeffnet werden.", fname);
    			open = FALSE;
    		}
    	fclose(fp);
    	}
    	return 0;
    }
    
    FILE *open_write(const char msg[])
    {
    .....
    }
    


  • Du mußt auch die Datei weiterreichen, die du verwenden willst:

    FILE* open_read(...)
    {
      FILE*fp = fopen(...);
      //... Verarbeitung
      //kein fclose() - schließlich willst du die Datei noch verwenden
      return fp;
    }
    
    int read_int(FILE* infile)
    {
      //Verarbeitung von infile
      return data;
    }
    
    void close_file(FILE*f)
    { fclose(f);}
    int main()
    {
      FILE* f=open_read(...);
      int value=read_int(f);
      //...
      close_file(f);
    }
    


  • ok, danke erstmal, das hilft mir schon um einiges weiter.

    was verarbeitest du in read_int ?



  • Das mußt du schon selber machen (z.B. könnte dort ein fwrite sinnvoll sein oder auc fscanf - je nachdem, was du aus der Datei rauslesen willst).



  • achso, ich dachte du machst da noch etwas wichtiges. ok danke


Anmelden zum Antworten