strukturierte Daten schreiben
-
@john-0 sagte in strukturierte Daten schreiben:
Kunde(std::string name, std::string address1, std::string address2, float schuld, int nummer, int limit) :
name_(name), address1_(address1), address2_(address2), schuld_(schuld), nummer_(nummer), limit_(limit)
{}Warst du nicht der, der immer alle Parameter const haben wollte? Und ausgerechnet bei strings nimmst du keine const-ref? Wolltest du move'n?
-
@john-0
Ich habe noch das Problem beim lesen und anzeigen der gespeicherten Textdatei "kunde.cvs".
Mit dem Programm-Code:ifs2.open(filename_kunde, std::ios::in); while (ifs2 >> kunde.nummer_ >> kunde.name_ >> kunde.address1_ >> kunde.address2_ >> kunde.limit_ >> kunde.schuld_) { std::cout << "Kunden-Nummer = " << kunde.nummer_ << std::endl; std::cout << "Kunden-Name = " << kunde.name_ << std::endl; std::cout << "Kunden-Adresse1 = " << kunde.address1_ << std::endl; std::cout << "Kunden-Adresse2 = " << kunde.address2_ << std::endl; std::cout << "Kunden-Limmit = " << kunde.limit_ << std::endl; std::cout << "Kunden-Schuld = " << kunde.schuld_ << std::endl; } ifs2.close();
erhalte ich keine Anzeige.
Ich denke mal das liegt an dem Trennungszeichen ','.
Ohne Trennungszeichen funktioniert die Anzeige (allerdings nur ohne Leerzeichen zwischen den Eingaben: z.B Adresse1 = "addresse1" und nicht: "addresse1 xy").
Wie kann ich die Textdatei "kunde.cvs" auslesen ?MfG
Juergen B.
-
Verrätst du uns auch noch, was die Probleme sind? Was erwartest du, was ist die Ausgabe?
-
Glaskugel sagt:
o << k.nummer_ << ",'" << k.name_ << "','" << k.address1_ << "','" << k.address2_ << "'," << k.limit_ << "," << k.schuld_ << "\n";
vs.
ifs2 >> kunde.nummer_ >> kunde.name_ >> kunde.address1_ >> kunde.address2_ >> kunde.limit_ >> kunde.schuld_
Die beiden sind nicht Gegenteile voneinander.
edit: Fragesteller hat inzwischen eine Problembeschreibung zugefügt, die Glaskugel hatte also Recht.
-
@DocShoe
Sorry, ich hatte beim erstellen eine falsche Taste (backspace) gedrückt --> unfertiger Beitrag wurde angezeigt.MfG
Juergen B.
-
@jbaben: Du kannst mittels
getline(ifs2, kunde.name_, ',')
den Text bis zum Komma einlesen.Am besten implementierst du dann den
operator >>
dafür und liest dann einfach perwhile (ifs2 >> kunde)
.
-
@Th69
So wie ich das verstehe:std::fstream ifs2; ifs2.open("kunde.cvs, std::ios::in); while(ifs2) // mit "while(ifs2 >> kunde) --> keine Anzeige { //get?(ifs2, kunde.nummer_ , ','); // da fehlt mir im Moment der Befehl um Integer zu lesen getline(ifs2, kunde.name_ , ','); getline(ifs2, kunde.address1_ , ','); getline(ifs2, kunde.address2_ , ','); //get?(ifs2, kunde.limit_ , ','); // da fehlt mir im Moment der Befehl um Integer zu lesen //get?(ifs2, kunde.schuld_); // da fehlt mir im Moment der Befehl um Float zu lesen std::cout << "Kunden-Nummer = " << kunde.nummer_ << std::endl; std::cout << "Kunden-Name = " << kunde.name_ << std::endl; std::cout << "Kunden-Adresse1 = " << kunde.address1_ << std::endl; std::cout << "Kunden-Adresse2 = " << kunde.address2_ << std::endl; std::cout << "Kunden-Limmit = " << kunde.limit_ << std::endl; std::cout << "Kunden-Schuld = " << kunde.schuld_ << std::endl; } ifs2.close();
funktioniert das einlesen und anzeigen nicht.
-
Hallo,
so funktioniert das einlesen und anzeigen der Textdatei "kunde.cvs":
std::string number = "", limit = "", schuld = ""; ifs2.open(filename_kunde, std::ios::in); while(ifs2) { getline(ifs2, number, ','); getline(ifs2, kunde.name_, ','); getline(ifs2, kunde.address1_, ','); getline(ifs2, kunde.address2_, ','); getline(ifs2, limit, ','); getline(ifs2, schuld); // hier fehlt noch die Konvertierung "String to Integer" //kunde.nummer_ = ?(number); //kunde.limit_ = ?(limit); //kunde.schuld_ = ?(schuld); std::cout << "Kunden-Nummer = " << number << std::endl; std::cout << "Kunden-Name = " << kunde.name_ << std::endl; std::cout << "Kunden-Adresse1 = " << kunde.address1_ << std::endl; std::cout << "Kunden-Adresse2 = " << kunde.address2_ << std::endl; std::cout << "Kunden-Limmit = " << limit << std::endl; std::cout << "Kunden-Schuld = " << schuld << std::endl; } ifs2.close();
MfG
Juergen B.
-
@Jockelx sagte in strukturierte Daten schreiben:
Warst du nicht der, der immer alle Parameter const haben wollte?
Da es es ein Beispiel fürs Forum ist, habe ich es deshalb weggelassen.
-
@john-0 sagte in strukturierte Daten schreiben:
@Jockelx sagte in strukturierte Daten schreiben:
Warst du nicht der, der immer alle Parameter const haben wollte?
Da es es ein Beispiel fürs Forum ist, habe ich es deshalb weggelassen.
Hast Du das
move()
, von dem @Jockelx im nicht zitierten Teil sprach, auch weggelassen, um die Neulinge hier nicht zu verwirren?