Array mit key-value vollständig in text-file schreiben



  • Hallo werte Community,
    ich hoffe mir kann hier jemand bei folgendem Problem helfe.

    Ich möchte Einstellungen, die ein User über ein Interface eingeben kann, in ein text-file schreiben, wo sie auch wieder abgerufen werden könne.

    Die Einstellungen, die der User trifft, sind in einem Array gespeichert per key-value (also kein Standardindex).

    Hier mein Code:

    #include <fstream>
    #include <string>
    
    // using directive
    using namespace std;
    
    string newColour;
    cin >> newColour;	// example 0F
    currSettings["colour"] = newColour;
    
    string currSettings[];	// this array still includes data (specific key and value)
    int elemntNumber = sizeof(currSettings) / sizeof(currSettings[newColour]); // number of array included elements
    
    ofstream newSettings("settings.txt", ios::app);
    
    for(int i = 0; i < elemntNumber; i++)
    	newSettings << "colour" << currSettings["colour"] << endl;
    
    newSettings.close();
    

    HINWEIS: Bitte gebt nichts auf Rechtschreibfehler oder fehlende Semikolon. Es geht mir hauptsächlich um Zeile 16 und 17 (for-Schleife) bzw. nur um Zeile 17 (Schreiben der Daten in text-file).

    So könnte der Inhalt des Arrays currSettings aussehen:

    // example of currSettings[]
    string currSettings[] = {
    	"colour" => "0F",
    	"width" => "1000",
    	"height" => "300",
    	"title" =>	"Project"
    }
    

    Wie kann ich es nun bewerkstelligen, dieses Array in ein text-file zu schreiben, da Zeile 17 oben sehr offensichtlich falsch ist, da es immer die selbe Info in das file schreibt.

    Vielen Dank schon einmal.

    Gruß. Train.



  • Fragen sind diese Dinger mit dem '?' hinten dran.



  • Train schrieb:

    Die Einstellungen, die der User trifft, sind in einem Array gespeichert per key-value (also kein Standardindex).

    Nein.
    Diese Art "dictionary"-Array gibt es in C++ nicht in dieser Form.
    Was du vermutlich meinst, sind Hashmaps ( std::unordered_map ), aber

    manni66 schrieb:

    Fragen sind diese Dinger mit dem '?' hinten dran.



  • so könnte es aussehen:

    for (auto && entry: dict) {
     string const& key = entry.first;
     string const& value = entry.second;      
     output << key << "=" << value << '\n';
    }
    

Log in to reply