Einfaches Adressbuch in C++ , Fragen über Fragen ... :)

Hi CommZ,

Da hier immer gut und viel geholfen wird möchte ich mich auch für mein neues Vorhaben hier beraten lassen.

Und zwar möchte ich wie man der Überschrift bereits entnehmen kann ein Adressbuch coden,aber ich schaffe es nicht ohne hilfe da ich n noob bin und auch kein gutes Tut mehr finde was mir weiterhilft,da jedes tut imme rmit andren Compilern arbeitet und anderen Befehlen teilweise,das verwirrt mich doch meist sehr...

An dieser Stelle wenn einer außer Volkards c++ tut noch n gutes hat BITTE BITTE undbedingt her damit!!!

Also nunmal zum Code;

#include <cstdlib>
#include <iostream>

using namespace std;

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

cout<<"Guten Tag, das ist ihr persönliches kleines Adressbuch."<<endl<<endl<<endl;

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

cout<<name<<endl;
cout<<addy<<endl;
cout<<tel<<endl;
cout<<geb<<endl;



system("PAUSE");
return EXIT_SUCCESS;
}

Tja,nun treten verschiedene Fehler auf.

1.Ich kann den Namen eingeben,aber danach nicht mehr die anderen Sachen,sie kommen einfach auf den Bildschirm?!
2.Wird bei der Ausgabe des Namens nur der Anfangsbuchstabe angezeigt und danach Zahlen oder garnichts...zahlen warum Zahlen ich dneke doch die variable ist richtig deklariert um Text zu bekommen?!

Wäre nett wenn mir da mal wieder wer unter Arme greifen könnte...!

ThX und MfG,

TeeKayo2
 
also es heißt nicht char name, ein char ist nur 1 byte ( ein zeichen) was du brauchst sind char pointer oder besser: std::string
da musst du aber noch die header datei <string> miteinbinden, aber für den anfang reicht auch char*

edit: mir fällt gerade auf, einen Geburtstag in einer Kommazahl zu speichern dürfte problematisch werden, nimm dafür besser eine Zeichenkette
 
Hi,

Ja ich habe mittlerweile rausgefunden das ich wohl "*char" schreiben müsste aber das geht leider auch nicht.
auch "long" funktioniert nicht.

Könntest du vll. ein Beispiel geben wie das auszusehen hätte??

ThX und MfG,

Tko?
 
Code:
#include <cstdlib>
#include <iostream>
int main(int argc, char *argv[])
{
char* name=new char[20];
char* addy=new char[20];
int tel;
char* geb=new char[20];

cout<<"Guten Tag, das ist ihr persönliches kleines Adressbuch."<<endl<<endl<<endl;

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

cout<<name<<endl;
cout<<addy<<endl;
cout<<tel<<endl;
cout<<geb<<endl;



system("PAUSE");
return EXIT_SUCCESS;
}
 
Ähm,jaaa...

Ich habs jetzt so geregelt:

#include <cstdlib>
#include <iostream>

using namespace std;

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

cout<<"Guten Tag, das ist ihr persönliches kleines Adressbuch."<<endl<<endl<<endl;

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

cout<<endl<<endl<<endl;

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



system("PAUSE");
return EXIT_SUCCESS;
}


Geht auch klar, oder treten dann bei falscher eingabe noch irgendwleche Fehler auf?!

Thx und MfG,

Teekayo2

EDIT// Also nun treten doch Probleme auf ^^
Und zwar wenn ich bei Adresse bsp. wer wo wie eingebe,nimmt er das wo gür die telenummer und das wie für geburtstag,somit ist es nicht möglich 2 Wörter einzugeben...

Wie bekomm ich das hin?
 
Hi,

also es bringt leider immernoch nichts!

wenn ich z.b max mustermann eigebe,nimmt er mustermann gleich für die Adresse...

kann man nicht irgendwie die cin eingabe für jedes einzelne erzwingen?

oder gibt es eine string erweiterung damit man 2 wörter oder mehrere reinschreiben kann?

danke für eure Hilfe,

mfg

tk

edit:Wie gibt man nen Mehrteiligen String aus?!
Googel hilft da schonwieder garnicht ;(
 
Code:
....
char* name=new char[20];
cin.getline(name,20,'\n');
Das problem war nicht der string, sondern das einlesen
Dritter parameter is eigentlich nicht nötig, da '\n' standart ist, habs nur hingeschrieben, damit man sieht, dass man das kriterium wann der string endet selbst wählen kann.

http://www.cppreference.com/cppio/getline.html
 
Hmm dann bin ich wohl zu spät...
Hatte das vorhin vergessen, Lesco hat recht! So funktionierts:

Code:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

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

cout<<"Guten Tag, das ist ihr persönliches 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;

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



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