Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » char[20]

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.09.2003, 11:22 Uhr
earth2



Hi, ich habe ein Problem:

ich will eine "char name[20]" Variable einlesen lassen,
besser ihr seht den Quellcode:

C++:
#include <iostream>
using namespace std;


class Klasse
{
public:
    void InputName(){char Name[20];cin>>Name; itsName=Name;}
    void SetName(char Name[20]){itsName=Name;}
    char GetName()const {return itsName;}
private:
    char itsName[20];
};



int main()
{
    Klasse A;
    A.InputName();
    cout<<A.GetName();
    A.SetName('Earth2');
    cout<<A.GetName();

    return 0;
}


Bitte über jede Antwort dankbar.

edit: cpp tags eingefügt

Dieser Post wurde am 09.09.2003 um 11:28 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.09.2003, 11:30 Uhr
virtual
Sexiest Bit alive
(Operator)


Arrays kann man nicht zuweisen; man muß sie kopieren. In Deinem Fall bietet sich zB strcpy an:

C++:
itsName = Name;


sollte werden zu

C++:
strcpy(itsName, Name);


Außerdem sollte 'Earth2' werden zu "Earth2".
Weiter Fehler sind möglich, habe es nicht compiliert...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.09.2003, 11:59 Uhr
0xdeadbeef
Gott
(Operator)


Warum nimmst du char[20], und nicht einfach std::string?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.09.2003, 12:05 Uhr
earth2



Danke für die Antworten.

Ich bin noch ein neuling arbeite grade das Buch C++ in 21 Tagen durch.

Ich hab es jetzt geschaft das nur noch eine Fehlermeldung erscheint.
Das bei der Methode GetName().

Kannst du den Befehl "std::string" erläutern? wo und wie setze ich ihn ein?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.09.2003, 12:09 Uhr
0xdeadbeef
Gott
(Operator)


Was die Fehlermeldung angeht: Du willst ja nicht nur einen char zurückgeben, sondern mehrere. Das heißt, du brauchst einen pointer auf char, also:

C++:
char* GetName();



std::string ist ein Datentyp, kein Befehl. Ich würde ihn statt char[20] benutzen, das vereinfacht viele Dinge. Zum Beispiel kannst du dann auch gefahrlos mehr als 20 Zeichen einlesen, und die Zuweisung per "=" funzt auch. Der Code sähe so aus:

C++:
#include <iostream>
[b]#include <string>[/b]

using namespace std;

class Klasse
{
public:
    void InputName(){[b]string[/b] Name;cin>>Name; itsName=Name;} //oder gleich cin >> itsName;
    void SetName([b]string[/b] Name){itsName=Name;}
    [b]string[/b] GetName()const {return itsName;}
private:
    [b]string[/b] itsName;
};

int main()
{
    Klasse A;
    A.InputName();
    cout<<A.GetName();
    A.SetName("Earth2");
    cout<<A.GetName();

    return 0;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 09.09.2003 um 12:11 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.09.2003, 12:13 Uhr
0xdeadbeef
Gott
(Operator)


Übrigens - std::string habe ich deswegen gesagt, weil string im namespace std definiert ist. Ohne using namespace std; müsstest du ihn std::string nennen. Zum Beispiel:

C++:
#include <iostream>
#include <string>

int main() {
  std::string s = "Hello, World!";
  std::cout << s << std::endl;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 09.09.2003 um 12:13 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.09.2003, 13:21 Uhr
earth2



Okay, vielen dank, das Programm funzt jetzt.

Könnt ihr mir vielleicht noch ein Buch empfehlen, das ich nach C++ in 21 Tagen
lesen kann.

Eine Frage noch:
Ist es möglich in C++ .bmp einzufügen.
benutze nicht das Win32, sondern das MS-DOS Fenster.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: