2D-Array in TXT schreiben



  • also eigentlich sollte es in der txt z.B. so aussehen:

    2#3#4#13#0#0#0

    es sieht dann aber so aus:

    2#0



  • hat niemand eine idee?

    hier nochmal der ursprüngliche code:

    // Schreibt M_2 in TXT:
    void M_2_to_csv(vector<vector<vector<double> > > array){
    
    	long zeilen, spalten;
    
    	FILE *file;
    
    	zeilen = array.size(); // Länge Zeilen
    	spalten = array[0].size(); // Länge Spalten
    
    	file = fopen("M_2.txt", "w");
    
    	for(int i = 0; i < zeilen -1 ; i++){  // "-1", da letzte Zeile abgespalten wird
    		for(int h = 0; h < spalten; h++){
    			fprintf( file, "%g#", array[i][h][1] );
    		}
    		fprintf( file, "\n" );
    	}
        fclose(file);
    }
    

    ich möchte nur, dass am eine der zeile keine raute steht. das kann eigentlich nicht so schwer sein...



  • Hallo,

    for(int i = 0; i < zeilen -1 ; i++){  // "-1", da letzte Zeile abgespalten wird
            for(int h = 0; h < spalten - 1; h++){
                fprintf( file, "%g#", array[i][h][1] );
            }
            fprintf( file, "%g\n", array[zeilen - 2][spalten - 1][1] );
        }
    

    Wie wärs damit?



  • Braunstein schrieb:

    Hallo,

    for(int i = 0; i < zeilen -1 ; i++){  // "-1", da letzte Zeile abgespalten wird
            for(int h = 0; h < spalten - 1; h++){
                fprintf( file, "%g#", array[i][h][1] );
            }
            fprintf( file, "%g\n", array[zeilen - 2][spalten - 1][1] );
        }
    

    Wie wärs damit?

    Wie wärs mit C++?



  • Warum sagst du mir das?
    Der OP wollte printf und FILE verwenden, wer bin ich denn ihn daran zu hindern? 😉



  • Du, bist, BRAUNSTEIN! Aber leider nicht Sparta, sonst hättest du ihn davon überzeugt, dass fprintf und FILE der absolut falsche Ansatz in C++ sind.



  • ok, danke erstmal.

    wieso der falsche ansatz? wie mache ich es denn besser?

    so, wie ich es geschrieben habe, läuft es sehr gut und auch schnell...



  • Richtig wäre es die Streams zu benutzen. Sonst kannst du gleich C schreiben.



  • ok, aber welchen vorteil bringt mir das?



  • Typsicherheit und Austauschbarkeit. Ein fprintf mit einem Parameter, der nicht zum Format Identifier passt kann gerne schon mal für Unruhe sorgen.
    Wenn du einen iostream operator für deinen Datentyp implementierst kann der Datentyp seinen Inhalt in jeden Stream schreiben und jeden Stream lesen, der das istream/ostream Interface unterstützt.


Anmelden zum Antworten