C++ Programm geht nicht, brauche Hilfe
-
Hallo,
ich wollte mich einfach mal darin üben mit "struct"´s zu arbeiten, jedoch funktioniert der Code nicht. Ich habe shcon im Internet nach geeignenten Lösungen gesucht und in meinem Buch jedoch kann ich da nichts hilfreiches finden, vieleicht könnt ihr mir helfen und mir sagen was Falsch ist und es koorigieren, aber bitte net so umständlich wenn es einfacher geht?!Danke für die Bemühungen.
Hier der Code:
#include<iostream> #include<string> #include<fstream> using namespace std; struct test { string namen; string nachname; int telefon[10]; string strasse; }; int main() { cout<<"Bitte geben sie ihren Vornamen ein"<<endl; cin>>test.namen; cout<<"Bitte geben sie jetzt ihren Nachnamen ein"<<endl; cin>>test.nachname; cout<<"Bitte nun die Telefonnummer"<<endl; cin>>test.telefon; cout<<"und als letztes noch die Straße"<<endl; cin>>test.strasse; fstream datei; datei.open("test.text",ios::out); datei<< test.namen,test.nachname,test.telefon,test.strasse; datei.close(); }
-
'struct test' ist der Name eines Datentyps (wie int oder double). Um damit wirksam arbeiten zu können, mußt du Objekte davon anlegen (du würdest schhließlich auch nicht auf die Idee kommen,
cin>>int;zu schreiben - hoffe ich zumindest).... int main() { test person;//'person' ist ein Objekt vom Typ '(struct) test' cout<<"Bitte geben sie ihren Vornamen ein"<<endl; cin>>person.namen; ... datei<< person.namen<<person.nachname<<person.telefon<<person.strasse; }PS: Und wenn du mehrere Wert an einen Stream ausgeben willst, mußt du sie mit << verketten und nicht mit Kommas

PPS: und ein int-Array ist wohl nicht das richtige Datenformat, um Telefonnummern darzustellen.
-
alles klar super das hat mir geholfen das mit den objekten wusste ich noch net, und was würdest du mir empfehlen wo ich die telefonnummern reinpacke??
EDIT:
#include<iostream> #include<string> #include<fstream> using namespace std; struct test { string namen; string nachname; int telefon[10]; string strasse; }; int main() { test person; cout<<"Bitte geben sie ihren Vornamen ein"<<endl; cin>>person.namen; cout<<"Bitte geben sie jetzt ihren Nachnamen ein"<<endl; cin>>person.nachname; cout<<"Bitte nun die Telefonnummer"<<endl; cin>>person.telefon; cout<<"und als letztes noch die Straße"<<endl; cin>>person.strasse; fstream datei; datei.open("test.text",ios::out); datei<< person.namen<<person.nachname<<person.telefon<<person.strasse; datei.close(); }so ist es sicherlich besser, jedoch kommen jetzt die folgenden fehler:
C:\Dokumente und Einstellungen\christopher\Desktop\Programme\C++\binär-normla.cpp In function `int main()': 23 C:\Dokumente und Einstellungen\christopher\Desktop\Programme\C++\binär-normla.cpp no match for 'operator>>' in 'std::cin >> person.test::telefon' note C:\Dev-Cpp\include\c++\3.4.2\bits\istream.tcc:87 candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]usw.... was sagen mir diese fehler??
-
Firefighter schrieb:
alles klar super das hat mir geholfen das mit den objekten wusste ich noch net,
Ja, man lernt immer noch dazu
(und mit deinen eigenen Datentypen kannst du prinzipiell genauso arbeiten wie mit den von C++ gelieferten)und was würdest du mir empfehlen wo ich die telefonnummern reinpacke??
std::string - wenn dir wichtig ist, eine gültige Telefonnummer zu bekommen, müsstest du dir eine eigene Klasse dafür schreiben.
Edit:
Firefighter schrieb:
C:\Dokumente und Einstellungen\christopher\Desktop\Programme\C++\binär-normla.cpp In function `int main()': 23 C:\Dokumente und Einstellungen\christopher\Desktop\Programme\C++\binär-normla.cpp no match for 'operator>>' in 'std::cin >> person.test::telefon' note C:\Dev-Cpp\include\c++\3.4.2\bits\istream.tcc:87 candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]usw.... was sagen mir diese fehler??
Was ich auch schon erklären wollte - int[10] ist nicht der richtige Datentyp für Telefonnummern

(genauer erklärt er dir, daß er keinen Eingabe-Operator für int-Arrays kennt - um ein Arrays zu füllen, müsstest du in einer Schleife jedes Element einzeln einlesen:for(int i=0;i<10;++i) cin>>person.telefon[i];)
-
ok super jetzt gehst auch
DANKE nochma