Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » rückgabe von strings?

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 < [ 2 ]
000
27.01.2004, 17:41 Uhr
~Alex
Gast


Habe ne funktion geschrieben die Daten vom typ char[15] name einließt (also strings).
diese sollen nun zurückgegeben werden. Wie mache ich das am besten.
Mein Lösungsversuch war folgender:


C++:

char* ausgabe :: name () const
{
static char nam[MAXNAMEL];
    cout<<endl<<"     Bitte geben Sie einen Namen mit maximal"<<MAXNAMEL<<"Zeichen ein "<<endl;
    cin>> nam;

  return nam;

}



funktioniert leider nicht, nehme an das man sowas irgendwie mit nem pointer oder ner referenz machen sollte, hatt aber auch nich funktioniert.


Bearbeitung von loddab:
Tags korriegert

Dieser Post wurde am 27.01.2004 um 17:43 Uhr von loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.01.2004, 17:43 Uhr
~alex
Gast


ups, falscher code

der den ich versucht hab is genauso nur ohne "static"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.01.2004, 17:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nimm ein std::string...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.01.2004, 17:55 Uhr
~alex
Gast


würde ich, darf ich abba net.
Die aufgabe ist mit nem char[] zu implementieren.
Müsste dann das gesamte programm mit string programmieren#
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.01.2004, 18:01 Uhr
RHBaum



1. da du cin und cout verwendest -> c++ -> Siehe Windalfs Post !

2. Falls du unverbesserlich bist, und trotzdem den C Weg willst :

C++:
int getName(size_t iMaxNameLen, char ** buffer)
{
    int iErrorcode = 0;
    cout << endl << "     Bitte geben Sie einen Namen mit maximal"<<iMaxNameLen<<"Zeichen ein "<<endl;
    cin >> *buffer;
    return iErrorcode ;
}


Den buffer musst natuerlich vorher allocieren, das ist ned so schwer, geht auch Statisch (mit char [] ) ....
Ne fehlerpruefung ist da ned drinnen, was die laenge angeht ...

ciao

Dieser Post wurde am 27.01.2004 um 18:04 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.01.2004, 18:41 Uhr
~alex
Gast


was bedeutet dein schreibweise für die übergabe von size?
Kann ich das auch weglassen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.01.2004, 18:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


size_t ist einfach nur ein unsigned integer...
weglassen kannst du es natürlich nicht aber ein "signed" int zu benutzen macht an dieser stelle wenig sinn... da länge wohl nicht kleiner als 0 sein wird...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 27.01.2004 um 18:43 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
27.01.2004, 18:47 Uhr
~alex
Gast


Das wäre dann quasi getname(int size,char** name)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.01.2004, 18:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nicht ganz...
ob du nun einen fehlerwert returnen willst oder nicht sei mal die überlassen
aber es macht wie gesagt keinen sinn ein int zu verwenden weil ein name der länge -1 nicht vorkommen wird...

C++:
int getName(unsigned int MaxNameLen, char **name);


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 27.01.2004 um 18:50 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
27.01.2004, 19:05 Uhr
~alex
Gast


Hab nochne Frage:

warum kann ich sowas hier nicht in meiner funktion definieren:

char [15];
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: