String is not declared
-
Hi alle zusammen,
ich bin grad dabei ein kleines telefonbuch auf konsolenebene zu schreiben....
ganz einfach aufgebaut!hab ein projekt mit main und dann wenn man einen neuen eintrag machen will geht er zur neu.cpp.
diese sieht so aus:
#include "header.h" #include <string.h> string name1, name2; int eingabe2; int vorwahl; int nummer; void neu(void) { cout<<"Neuer Eintrag"<<endl<<endl; cout<<"Bitte den Vornamen eingeben: "; cin>>name1; cout<<"Bitte Nachname eingeben: "; cin>>name2; cout<<"Bitte Vorwahl eingeben: "; cin>>vorwahl; cout<<"Rufnummer eingeben: "; cin>>nummer; cout<<endl<<endl<<"1 zum Bestaetigen, 2 zum Löschen des Eintrags"<<endl<<endl; cout<<(name1 + " " + name2 + " " + vorwahl + "/" + nummer); cout<<endl<<endl; cout<<"Eingabe: "; cin>>eingabe2; if(eingabe2==1) { ofstream fout("speicher.txt"); fout<<(name1 + " " + name2 + " " + vorwahl + "/" + nummer);<<endl; cout<<"Gespeichert"; } }
Fehlermeldungen:
string does not name a type
redefinition for 'int vorwahl'
name 1 und 2 und vorwahl und nummer sind undecleared
....hilfe
-
1. #inlcude <string> nicht <string.h>
2. benutze std::string (der namespace ist std)Simon
-
geht nicht
-
Manu82 schrieb:
geht nicht
ha, ja. und was geht denn nicht?
kann nicht hellsehen...
-
Das ist auch kein C++ Code.
#include "header.h" #include <string> // 1. Fehler #include <iostream> // Ich kann nur raten das du es inkludiert hast... #include <fstream> // Ich kann nur raten das du es inkludiert hast... using namespace std; // Da du den std:: Namensraum nicht explizid angibst // 3. Anmerkung // => Globale Variablen bitte vermeiden wenn möglich! // (Habe alle in die Funktion verschoben) void neu() // 4. Anmerkung: (void) in der Parameterliste ist in C++ nicht nötig { string name1, name2; int eingabe2; // 5. Anmerkung: Am Namen erkennt man keine Funktion der Variable int vorwahl; // 6. Anmerkung: Und was ist mit der führenden 0? (Besser: string) int nummer; // 7. Anmerkung: Einrücken und Sinnvolle Gruppierungen machen es lesbarer cout << "Neuer Eintrag" << endl << endl; cout << "Bitte den Vornamen eingeben: "; cin >> name1; cout << "Bitte Nachname eingeben: "; cin >> name2; cout << "Bitte Vorwahl eingeben: "; cin >> vorwahl; cout << "Rufnummer eingeben: "; cin >> nummer; cout << endl << endl << "1 zum Bestaetigen, 2 zum Löschen des Eintrags" << endl << endl; cout << (name1 + " " + name2 + " " + vorwahl + "/" + nummer); << endl << endl; cout << "Eingabe: "; cin >> eingabe2; if(eingabe2 == 1) { // Siehe Anmerkung 5: Sprechende Namen machen es auch lesbarer ofstream file("speicher.txt"); file << (name1 + " " + name2 + " " + vorwahl + "/" + nummer) // Hier war ein ";" zuviel << endl; cout << "Gespeichert"; } }
cu André
-
Manu82 schrieb:
geht nicht
Grundsätzlich: Fehlermeldungen angeben
Ich tippe aber einfach mal auf einen veralteten Compiler (Einer der sich nicht nach an den inzwischen 10 Jahre alten C++ Standard hält...).
-
ok,
habe den code mal angepasst
Fehlermedlungen nun:
string does not name a type 4x
no match for operator + in std::operator 2x
-
Welchen Compiler verwendest du?
MfG SideWinder