getline char auslesen und in Variablen speichern



  • Hallo,

    möchte eine Dat Datei von Ldraw
    einlesen mit getline in ein Char Array
    das geht schon mal
    nun stehen die Koordinaten in dem Array so drin
    z.B.
    Format: LineType Color X1 Y1 Z1
    "2 24 5 6.9 -8.67 6.03"

    wie lese ich die einzelnen Zeichen raus und speichere Sie in 6 Variablen?
    das Parsen bekom ich dann selber hin!

    Vielen Dank für eiure Hilfe

    Gruß Matthias



  • einfach mit stringstream auslesen unj in eine variable speichern:

    std::string str;
    std::stringstream cst;
    double val[7];
    int i=0;
    str = char_array;
    while( cst << str )
    {
        cst >> val[i];
        i++;
    }
    

    mfg
    Double *T



  • Warum liest du nicht gleich direkt in Variablen ein?

    std::ifstream in ("file.txt");
    
    int LineType = 0;
    int Color = 0;
    float X1 = 0.0f;
    float Y1 = 0.0f;
    float Z1 = 0.0f;
    
    in >> LineType >> Color >> X1 >> Y1 >> Z1;
    


  • Vielen lieben Dank

    Quelldatei >> LineType >> Color >> X1 >> Y1 >> Z1;
    wusste garned das das geht 🙂

    wenn ich LineType nicht benötige wie gehe ich dann vor?
    möchte nicht extra eine Variable verschwenden da das Programm sehr komplex ist
    thx Matze



  • ich würd altmodisch per schlefie durchgehen und nach trennzeichen suchen und das dann per substring in einen anderen string schieben und den in foats umwandeln...



  • Hallo,

    ich habe ein ähnliches Problem. Ich möchte jedoch bestimmt Werte überspringen. Beispiel: ort: see Nummer: 8
    Hier sollen nur die Werte see in Char und 8 als int in einer entsprechenden Variable gespeichert werden.

    Grüße

    Guddy



  • Skym0sh0 schrieb:

    ich würd altmodisch per schlefie durchgehen und nach trennzeichen suchen und das dann per substring in einen anderen string schieben und den in foats umwandeln...

    Du kannst es ein bisschen moderner mit std::string::find() lösen 😉

    guddy schrieb:

    [...]

    Auch für dein Problem solltest du dich ausführlicher mit der Klasse std::string und deren Funktionen (vor allem find() , substr() ) sowie mit StringStreams ( std::stringstream ) befassen.



  • Ein Versuch erstmal die Werte einzulesen. Leider funktioniert die Ausgabe nicht. Warum?

    #include <iostream>
    #include <fstream>
    
    int main() {
    
    std::string var, val, f;
    
    std::ifstream in("test.txt"); // neuen Lese-Stream erzeugen
    
    for(int i = 0; i < 4; ++i) {
    std::getline(in, var, ':'); // Einlesen bis :
    in.ignore(); // Leerzeichen ignorieren
    std::getline(in, val); // Einlesen bis Zeilenende
    std::cout << var << " = " << val << "\n";
    
    }
    

    Grüße
    Guddy



  • Hi, hab es nun mit istringstream gemacht 😉 nun geht es Ein sowie Ausgabe 😉


Anmelden zum Antworten