Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
char function

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Herbert Maschke
Gast





BeitragVerfasst am: 23. Aug 2002 9:56   Titel: char function

Huhu. folgendes winziges C++-programm:

#include <stdio.h>

char get() {
return "1";
}

main() {
char test;

test = get();
printf("%s", test);
}

fehlermeldung:

test.cpp: In function `char get()':
test.cpp:4: return to `char' from `const char *' lacks a cast

Wie krieg ich dies trotzdem zum laufen? So dass als ausgabe nur
1
auf dem bildschirm steht? 1 moechte ich also evtl. auch noch mit nem
string austauschen... also einfach int draus machen geht auch nicht.
Hab schon ueberall gesucht... plz help
thyseus@gmx.net
 

Jochen
Gast





BeitragVerfasst am: 23. Aug 2002 10:22   Titel: Re: char function

Du schmeisst gerade "char" und "char *" (also typischerweise Strings = Zeiger auf mit \0 abgeschlossene Folge von Zeichen) durcheinander. Wenn der Rückgabewert von get() char sein soll, musst Du auch ein char zurückgeben, also '1' statt "1". Man beachte die Apostrophe statt der Anführungszeichen! Und dann muss auch printf wissen, dass es ein Zeichen und nicht eine Zeichenkette auszugeben hat: %c statt %s. Das ganze ergibt dann
code:
#include <stdio.h>

char get(void) {
return '1';
}

int main (void) {
char test;

test = get();
printf ("%c\n",test);
exit (0);
}

Übrigens ist das reines C und kein C++...

Jochen
 

Herbert Maschke
Gast





BeitragVerfasst am: 23. Aug 2002 10:57   Titel: Re: char function

Und wenn ich anstatt 1 Char jetzt mehrere Chars
zurueckgeben will muss ich %c nur mit %s ersetzen(im printf)?
 

Jochen
Gast





BeitragVerfasst am: 23. Aug 2002 12:04   Titel: Re: char function

Das auch, aber das langt nicht. Schliesslich gibts Du ja anstelle eines char (1 Byte) einen Zeiger auf char (char*, auf IA32 4 Byte) zurück. Also musst Du den Typ der Variablen test, den Rückgabewert der Funktion, das Literal in der Funktion und den Formatstring ändern:
code:
#include <stdio.h>

char *get(void) {
return "Hallo, Welt!";
}

int main (void) {
char *test;

test = get();
printf ("%s
",test);
exit (0);
}


Alles klar? Es gibt da noch ein paar Fallstricke bei Zeichenketten, aber über die solltest Du erst stolpern, wenn Du dieses Problem auf der Kette hast.

Jochen
 

Herbert Maschke
Gast





BeitragVerfasst am: 26. Aug 2002 9:04   Titel: Re: char function

Thx an alle jez hab ich einiges verstanden.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy