Textdatei in mehrdimensionales Array einlesen



  • Guten Tag allerseits,

    ich soll im Rahmen einer Übung in C++ eine Textdatei in ein mehrdimensionales Array einlesen.
    Ich habe mir dazu schon einige Gedanken gemacht (siehe unten). Jedoch schaffe ich es nicht die einzelnen Zahlen aus der Textdatei in das Array zu speichern.

    Short Reminder: Bin absoluter Programmieranfänger!

    int main() {
    
    	string Array[200];
    	char Feld[9][9];
    	fstream file;		
    	string line;
    	char c;
    	file.open("C:/Users/Nutzer/Desktop/Auswertung.txt");
    	if (file.is_open()) {
    		while (file.get(c)) {
    			if (c != ' ') {
    			for (int i = 0; i < 9; i++) {
    				for (int j = 0; j < 9; j++) {
    
    					Feld[i][j] = c;
    				}
    			}
    		}
    		file.close();
    	}
    


  • @euler331 Du liest ein Zeichen ein und schreibst es dann an jede Position im Array.

    Du musst nach jedem einlesen j weiterzählen.
    Und wenn j 3 erreicht hat wieder auf 0 setzen und i um eins erhöhen.



  • This post is deleted!


  • Da ich kein Freund vom Einlesen einzelner Zeichen bin, würde ich es so machen:

        std::vector<std::vector<char>> Field;
        std::ifstream f( "./data.txt" );
        if ( !f.is_open() )
           return -1; // ggfs Fehlermeldung, Exception oder Returncode
        for ( std::string Line; std::getline( f, Line ); )
        {
            if ( Line.size() < 9 )
               return -1; // Fehler
            Field.emplace_back( Line.begin(), Line.begin() + 9 );
        }
    

    In dem Fall wird kein char[9][9] verwendet sondern stattdessen ein Vector. Es wird zeilenweise eingelesen ( bis zum '\n' ) und die ersten 9 Zeichen jeder Zeile werden als vector<char> dem 'Field' hinzugefügt.


Log in to reply