Ausgabe in eine Textdatei (wichtig!!!!!!!!!)



  • hi leute..
    ich habe eine aufgabe gestellt bekommen und soll zahlen im format einer matrix in einer textdatei ausgeben...
    das soll so aussehen:

    2 1 1 1 1
    1 2 0 0 0
    1 0 2 0 0
    1 0 0 2 0
    1 0 0 0 2

    die aufgabe auf dem bildschirm funktioniert sehr gut, habe ich wie folgt gelöst:

    void ausgabe(float a[n][n], int anzahl){
    	int i,j;
    
    	for (i=0; i<anzahl; i++){
    		for (j=0; j<anzahl; j++){
    			printf("%6.2f", a[i][j]);
    		}
    		printf("\n");
    	}
    }
    

    die ausgabe in die datei wollte ich wie folgt lösen:

    void matrixausgabe(float a[n][n], int anzahl){
    	FILE *f;
    	int i, j;
    	f=fopen("datei_ausgabe.txt", "wb");
    
    	for(i=0; i<anzahl; i++){
    		for(j=0; j<anzahl; j++){
    			fprintf(f, " %4.2", a[i][j]);
    		}
    		fprintf(f, "\n");
    		return;
    	}
    	fclose(f);
    }
    

    leider bekomme ich in der ausgabe nur 5 leerzeichen (wert von anzahl ist 5), sowie einen enter...
    wer kann mir ganz dringend helfen???

    thx, KB

    edit: der funktionsaufruf:

    printf("\nDie Choleskyzerlegung wurde durchgefuehrt.\n\n");
    					printf("Cholesky-Matrix:\n\n");
    					ausgabe(c, anzahl);
    					matrixausgabe(c, anzahl);
    


  • KingBenny schrieb:

    fprintf(f, " %4.2", a[i][j]);

    Hab den Quelltext nur mal kurz überflogen, aber das kann doch so wohl nicht richtig sein, oder 😉



  • sry... für meinen falschen ton...
    der fehler lag auf der hand...
    nun muss ich noch mal kurz basteln.....

    KB <--leicht gestresst... 😉



  • sry for doppelpost...
    also das erste prob ist gelöst, doch nun habe ich ein zweites problem:
    die ausgabe in die datei klappt...
    sieht aus wie folgt:
    1.41 0.00 0.00 0.00 0.00
    dann sollte der zeilenumbruch kommen, was aber nicht geschieht!
    alle zahlen stehen hintereinander da, ab und an ein schwarzes kästchen, das den zeilenumbruch signalisiert!
    wie kann ich aber wirkliche umbnrüche bekommen??

    hilfe!

    KB



  • for(i=0; i<anzahl; i++){
    		for(j=0; j<anzahl; j++){
    			fprintf(f, " %4.2", a[i][j]);
    		}
    		fprintf(f, "\n");
    		// return; // wofür ist dieses return gut?
    	}
    

    BTW: Ich glaube, das hier gehört eher in den Ansi-C-Teil.. 😕



  • das return soll eine neue zeile im editor erzeugen, was geschehen soll, um die matrix-schreibweise (siehe ganz oben) zu verdeutlichen! ausserdem wird auf eine datei mit inhalt in dem format ganz oben zugegriffen, wäre also nur gut, sie auch so zu speichern...
    scheint auch zu funktionieren...
    (wird von meinem editor jedoch nicht angezeigt... wenn ich allerdings den inhalt kopiere und in word o.ä. einfüge, sind die umbrüche da)

    BTW: Ich glaube, das hier gehört eher in den Ansi-C-Teil..

    ^^weiss nich... hab doch keine ahnung von c...

    thx trotzdem, KB



  • Probiere statt \n mal \r\n



  • *froi*
    vielen dank dann...
    KB


Anmelden zum Antworten