Dateien erstellen in einer for-Schleife



  • Hallo,

    ich versuche gerade in einer for-Schleife Dateinamen so zuerstellen, dass die letzten Zeichen vom Dateinamen die Schrittlänge der for-Schleife enthält.

    z.B.:

    a_filename_1.dat
    a_filename_2.dat
    a_filenmae_3.dat
    .
    .
    .

    Kann mir jemand helfen?

    Vielen Dank und viele Grüße
    simsa



  • naja, in der schleife machste z.b:

    ...
    char name[256];
    sprintf (name, "a_file_%d.dat", schleifenzaehler);
    neues_file_erzeigen (name);
    ...
    

    🙂



  • hallo,

    danke für deine mühe. aber was meinst du mit

    neues_file_erzeigen (name); ????

    viele grüße
    simsa



  • Damit meint er vmtl die Funktion mit der du das von dir gewünschte File erzeugst.
    Es dient lediglich als Platzhalter für den von dir noch einzufügenden Code.



  • #include <stdio.h>
    #include <stdlib.h>
    
    FILE *createFile(char *str){
    	FILE *fp;
    	if ((fp=fopen("beispiel","w+b"))==NULL){
    	   fprintf(stderr,"Fehler beim Öffnen der Datei\n");
    	   return NULL;
    	}
    	return fp;
    }
    
    int main(void) {
    	char name[256];
    	int schleifenzaehler = 10;
    	FILE *fp;
    	while(--schleifenzaehler){
    		sprintf(name, "a_file_%d.dat", schleifenzaehler);
    		fp = createFile(name);
    		if(fp==NULL)
    			return 1;
    	}
    	return 0;
    }
    

    weitere informationen zu fopen() findest du hier http://www.cplusplus.com/reference/clibrary/cstdio/fopen/

    lg lolo



  • also das war mal nicht so doll, um genau zu sein voll madig... man sollte die datei auch wieder schließen nachdem man sie mit fopen geöffnet hat also...

    noobLolo schrieb:

    #include <stdio.h>
    #include <stdlib.h>
    
    int createFile(char *str){
    	FILE *fp = fopen(str, "w+b");
    	if(fp == NULL){
    	   fprintf(stderr, "Fehler beim Öffnen der Datei\n");
    	   return 0;
    	}
    	fclose(fp);
    	return 1;
    }
    
    int main(void) {
    	char name[256];
    	int schleifenzaehler = 10;
    	int ret;
    	while(--schleifenzaehler){
    		sprintf(name, "a_file_%d.dat", schleifenzaehler);
    		ret = createFile(name);
    		if(ret == 0)
    			return 1;
    	}
    	return 0;
    }
    

    hoffe das ist etwas besser 🙄

    lg lolo



  • Hallo,

    tut mir leid, dass ich mich umständlich formuliert habe. Es geht nicht nur darum, Files in der for-Schleife zu erzeugen, sondern auch in diese zu schreiben.

    Vielleicht versteht ihr mich so besser:

    static FILE *a_File;
    .
    .
    .
    for(P_step = 1e-12 ; P_step <= 1e-2 ; P_step = P_step * 10){
    P=P_step;
    /*hier wird eine Rechnung durchgeführt ca. 1300 Datenpunkte*/
    char name[256];
    sprintf (name, "a_file_%e.dat", P_step); // oder P
    a_File = fopen(name,"w"); // So soll es eigentlich öffnen
    fprintf(a_File,"Druck: %e\n",P); // Dateien für Aktivierungskurven
    }
    .
    .
    .
    

    Ich hoffe, es ist jetzt klar, was ich versuche.

    Vielen Dank
    simsa



  • hat sich erledigt,

    ich habe die anführunszeichen noch drinne gehabt...

    danke nochmals für die hilfen!!

    gruß
    simsa


Anmelden zum Antworten