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::stringund deren Funktionen (vor allemfind(),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 