Kleine Frage
-
Moin
Also ich beschäftige mich jetzt mit c++. Also hab ich mal ein kleines Progrämmchen geschrieben:
#include <iostream.h> #include <string> class Spieler { public: Spieler() { name = new char[]; } char *name; }; int main() { Spieler player1; cout << "Bitte Namen eingeben\n"; cin >> player1.name; cout << player1.name; return 0; }
Klappt ja auch. Bloss wenn ich zuviele Zeichen eingebe, gibts irgendso ne böse Meldung. Gibt es vielleicht ne bessere Lösung?
-
class Spieler
{
public:
std::string name;
};
-
Das hab ich schon probiert, aber dann meldet der folgendes:
C:\Programme\Microsoft Visual Studio\MyProjects\klassen\klassenmain.cpp(17) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<ch
ar> >' (or there is no acceptable conversion)
C:\Programme\Microsoft Visual Studio\MyProjects\klassen\klassenmain.cpp(18) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<ch
ar> >' (or there is no acceptable conversion)
-
std::getline(cin, player1.name);
-
name = new char[];
Das ist Käse. Du musst schon eine Größe angeben.
Die Variante mit std::string ist aber deutlich besser.
Zu deinem Problem:
Mach aus dem <iostream.h> ein <iostream> und du solltest das Problem los sein.
-
#include <iostream>
using namespace std;
-
Ok, danke schön für die schnellen Antworten...
Aber könntet ihr mir vielleicht noch ein paar Sachen erklären:
Mein Code sieht jetzt so aus:
#include <iostream> #include <string> using namespace std; class Spieler { public: std::string name; }; int main() { Spieler player1; cout << "Bitte Namen eingeben\n"; player1.name = "HALLO"; cout << player1.name; return 0; }
Was bezweckt dieses using namespace std?????
-
Hi,
falls Du es mit dem "new char[x]" lassen willst, dann fehlt Dir noch
ein "delete [] name" im Dtor von Spieler.Legolas
-