Nen ganzen Block in einer Variable speichern?!

Hi!

Ich habe vor ;

cout<<"Name: "<<name<<endl;
cout<<"Adresse: "<<addy<<endl;
cout<<"Telefonnummer: "<<tel<<endl;
cout<<"Geburtstag: "<<geb<<endl;

in eine Variable zu speichern aber es geht irgendwie nicht bzw. ich weiss nciht wie.
Das einzige was ich machen kann ist:

gesammt = name '\n' + addy '\n' + geb '\n' + tel;

aber dann steht das ganze nicht so da,wie es soll!

Wäre für Hilfe wie immer sehr dankbar!

thx und MfG,

TeeKayo2
 
mal eine frage: wie soll es denn in der variable stehen?

es wäre vllt ne möglichkeit nen struct zu definieren:
Code:
struct Eintrag
{
  string Name;
  string Addy;
  string tel;
  string geburtstag
}
...

Eintrag Eintrag1;
cout << "Name?"<<endl;
getline(cin,Eintrag1.name);

.....
 
Es soll so aussehen:

Name: Max Mustermann
Adresse: xyyxyyxyy
usw.

das ganze kann ich ja halt so schreiben aber ich will es ahlt in einer Variablen speichern damit es mögllich ist später den Eintrag so einzeln wiederzugeben!

Das mit dem Struct verstehe ich nicht wirklich...kannste das vll. nochmal erläutern und mit richtigem Code füllen?

Danke,

Tk

Edit:
Hier nochmal der Code zum besseren Verständniss:

//Add-book v.1.0.1 2005 ? by Te3k4Y-oO'H?


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
string name;
string addy;
string tel;
string geb;
string gesammt;

cout<<"Guten Tag, das ist ihr persoenliches kleines Adressbuch."<<endl<<endl<<endl;

cout<<"Name: "<<endl;
getline( cin , name );
cout<<"Adresse: "<<endl;
getline (cin ,addy);
cout<<"Telefonnummer: "<<endl;
getline( cin , tel );
cout<<"Geburtstag: "<<endl;
getline( cin , geb );

cout<<endl<<endl<<endl;

gesammt = name + '\n' + addy + '\n' + geb + '\n' + tel;

cout<<gesammt<<endl;




system("PAUSE");
return EXIT_SUCCESS;
}
 
Also entweder du machst dann halt einfach
gesamt="Name:"+name+"\nAddresse:"+addy+"\nTelefonnummer:"+tel; // usw
oder du nimmst nen struct oder ne klasse, wenn man schon c++ benutzt
Code:
#include <cstdlib>
#include <iostream>

using namespace std;
class Eintrag
{
 Eintrag(string name,string addy,string tel,string geb);  // konstruktor
 private:
 string name,addy,tel,geb;
 public:
 void Ausgeben();
}
Eintrag::Eintrag(string name,string addy,string tel,string geb)
{
 this.name=name;
 this.addy=addy;
 this.tel=tel;
 this.geb=geb;
}
void Eintrag::Ausgeben()
{
 cout << "Name:" << name << endl;
 cout << "Addresse:"<< addy << endl;
 cout << "Tel.Nummer:"<<tel<<endl;
 cout << "Geburtstag:"<<geb<<endl;
}
int main(int argc, char *argv[])
{
string name;
string addy;
string tel;
string geb;
string gesammt;

cout<<"Guten Tag, das ist ihr persoenliches kleines Adressbuch."<<endl<<endl<<endl;

cout<<"Name: "<<endl;
getline( cin , name );
cout<<"Adresse: "<<endl;
getline (cin ,addy);
cout<<"Telefonnummer: "<<endl;
getline( cin , tel );
cout<<"Geburtstag: "<<endl;
getline( cin , geb );

cout<<endl<<endl<<endl;
Eintrag Eintrag1 = Eintrag(name,addy,tel,geb);
Eintrag1.Ausgeben();




system("PAUSE");
return EXIT_SUCCESS;
}
So habs jetzt nicht getestet, müsste aber stimmen, so kannste beliebig viele einträge ohne großen aufwand ausgeben lassen oder anlegen.
 
Hallo TeeKayo2,

hier eine Loesung die ich in C (d.h. klappt auch mit C++) verwenden wuerde:
Code:
#define MAX_LAENGE 255

int main (int argc, char** argv)
{
....
char*    pcRes = (char*) malloc(MAX_LAENGE*sizeof(char));
int         n         = 0;  //Anzahl der geschriebenen Bits
//fehlt: pruefen ob die Summe der Stringlaengen > als MAX_LAENGE
n = sscanf(pcRes, "%s\n %s\n %s\n %s\n", name, addy, geb, tel);
...
}

dazu muss ich sagen, dass ich keine Ahnung habe, ob eine C++ Stringvariable die Adresse zurueckgibt, d.h. musst vielleicht '&' vor 'name', 'addy' usw. geben. Compiliert habe ich den Code nicht, koennen also Fehler drin sein :D.

So string.appendl wuerde man es moeglicherweise in C++ machen. Einfach mal ausprobieren - anders geht's eh nicht.

EDIT: da war wohl jemand schneller und besser :)
 
Uiuiui,

Das ganze muss ich jetzt erstmal kapieren da oben ^^
Das überfordet mein noobwissen ^^
Und es soll ja noch mein Proggy bleiben also copy & paste is ned drin...

Könntest du bitte erläutern was wo was tut daoben,wäre seeehr hilfreich für mich!!

ThX dafür!

MfG,

Teekayo2
 
also man definiert eine Klasse (also einen neuen Datentyp, den du wie string,int oder so verwenden kannst), von der man beliebig viele instanzen anlegen kann und den code nur einmal schreiben muss.
Wenn du zb 2 Einträge einliest und die ausgeben willst müsstest du zweimal cout << "Addresse" << addy .... schreiben und bei einer Klasse erzeugst du einfach noch eine instanz mit den daten des 2. Eintrags und rufst Ausgeben() auf, das spart 'ne Menge Arbeit. Also bei der Sache mit dem class:
das Eintrag(string name,string addy...) ist der Konstrukor, der verwendet wird um eine neue Instanz anzulegen.
Danach folgt private: das bedeutet: Auf alles was darunter steht bis zu public: kann nur die Klasse selbst zugreifen. Das unter public: Ist auch von außerhalb der Klasse z.B. in main() verfügbar.
Die Klasse besteht halt aus 4 Strings (Name, Addresse usw) und einer Methode, die den Inhalt der Variablen ausgibt.
 
Edit//

Okay...
habe versucht irgendwo ne "Anleitung" herzubekommen wie man Klassen und Instanzen definiert aber ich habe nichts brauchbares gefunden zumindest nichts verstanden ... :D

Ich möchte jetzt gerne das add-book erweitern und zwar so,dass man beliebig viele Leute eintragen kann und dann 1.per switch(nehme ich an) die einzelnen Einträge auslesen kann,.

so vonwegen:"Welchen Eintrag möchten sie ausgegeben bekommen 1,2 oder 3.


und 2.das man alle aufeinmal ausgeben kann.

Kann mir jemand zeigen wie man das macht??
Bitte,bitte,bitte!!

Wäre vom allerfeinsten wenn man //Kommentare an den Code schreibt wo was getan wird ,damit ich das verstehe.

Ich weiss garnicht wie ich euch bis jetzt allen danken soll soviel Hilfe wie ich schon bekommen habe,find es echt super das es leute gibt die gerne helfen!
Danke an dieser Stelle an jeden der mitgemacht hat,echt Klasse!!

ThX & MfG,

Teekayo2

Hier nochmal der aktuelle code für euch:
//Add-book v.1.0.2 2005 ? by Te3k4Y-oO'H?


#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
string name;
string addy;
string tel;
string geb;
string gesammt;


cout<<"Guten Tag," <<endl;
cout<<"das ist ihr persoenliches kleines Adressbuch."<<endl<<endl<<endl;

cout<<"Geben sie bitte den Namen ein: "<<endl;
getline( cin , name );
cout<<endl;
cout<<"Geben sie bitte die Adresse ein: "<<endl;
getline (cin ,addy);
cout<<endl;
cout<<"Geben sie bitte die Telefonnummer an: "<<endl;
getline( cin , tel );
cout<<endl;
cout<<"Tragen sie hier bitte noch den Geburtstag an: "<<endl;
getline( cin , geb );

cout<<endl<<endl<<endl;

gesammt ="Name: "+name+"\nAddresse: "+addy+"\nTelefonnummer: "+tel+"\nGeburtstag: "+geb;

cout<<gesammt<<endl;

cout<<endl<<endl<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
 
Zurück
Oben