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

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Zeichenketteneingabe (auch Anfängerfrage)

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





BeitragVerfasst am: 04. Feb 2001 14:54   Titel: Zeichenketteneingabe (auch Anfängerfrage)

Hi,

So, also ich möchte eigentlich nur eine Stringeingabe machen lassen, doch leider weiss ich nicht, was ich falsch mache oder wieso es nicht funktioniert.

Die Funktion, die für die Namenseingabe (in meinem Prog) zuständig ist, sieht wie folgt aus:

void namen()
{
printf ("Geben Sie bitte Ihren Namen ein, Spieler 1: ");
name1=scanf ("%s", &namen2);
printf ("

Danke %s", name1);

printf ("

Geben Sie bitte Ihren Namen ein, Spieler 2: ");
name2=scanf ("%s", &namen3);
printf ("

Danke %s", name2);
}

Sämtliche Variablen sind global definiert und vom Typ Char (name1, name2, namen2, namen3) !

Leider funktioniert das ganze auch mit Umwnadlungszeichen c nicht. Genau bevor diese Funktion aufgerufen wird, wird ein Enter für eine andere Eingabe gedrückt und irgendwie scheint dieses Enter auch gleichzeitig für die Frage nach dem Namen von Spieler 1 verwendet zu werden, denn diese überspringt er dann und fragt dann gleich nach dem Namen von Spieler 2. Und die Ausgabe klappt gar nicht, sprich die Ausgabe ist hinterher immer nur "Danke " und nix weiter.

Wenn ich s, wie im Beispiel als Umwandlungszeichen verwende, dann hat auch der erste Spieler eine Chance seinen Namen einzugeben, aber leider gehts danach nicht weiter. Die zweite Abfrage lässt er dann VÖLLIG weg und beendet das ganze Programm. Aber auch mit s heisst es dann immer nur "Danke " und nix weiter.


Danke euch für eure Hilfe !
 

Benni
Gast





BeitragVerfasst am: 04. Feb 2001 17:41   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Ha!
Einscheinend bin ich zum fortgeschrittenen Anfänger aufgestiegen. ;)

Da ein String ja ein definierten Pointer hat, darfst Du den bei scanf Dereferenzierungoperator(&) nicht benutzen.

Also muss es heisen:

scanf("%s",namen2);

Nicht:
scanf("%s",&namen2);

Gruss

Benni
 

kyle



Anmeldungsdatum: 30.01.2001
Beiträge: 14

BeitragVerfasst am: 05. Feb 2001 8:45   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Ivch seh schon Benni wird unser neuer C-Guru Smile
_________________
Warum durchs Fenster gehen, wenn die Tür offen steht?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Tux die Infobox
Gast





BeitragVerfasst am: 06. Feb 2001 17:59   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Okay, danke Benni du fortgeschrittener Anfänger Wink !
 

Tux die Infobox
Gast





BeitragVerfasst am: 07. Feb 2001 10:12   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Oh... :(

Nun habe ich die &-Symbole entfernt, doch leider schreibt das Programm nun, an Stelle von meinen Angaben "(null)" hin.

Was ist denn nun noch falsch ?

Wenn ich das Programm sich selbstständig, also nicht direkt aus KDevelop heraus, abarbeiten lasse, dann schreibt er (wie vorher) gar nichts hin. Es heisst dann nach wie vor "Danke ".

Helft Tux der Infobox bitte... Danke Wink.
 

Jochen
Gast





BeitragVerfasst am: 07. Feb 2001 15:26   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Wenn sämtliche Variablen vom Typ char sind, ist das Problem klar: Sie bieten Platz für genau ein Zeichen. Was Du brauchst, sind entweder Variablen vom Typ "char *", also Pointer auf Zeichen (und Zeichenketten, die dann mit '\0' abgeschlossen sein müssen), die auf reservierten Speicher zeigen (mittels malloc()), oder aber Variablen vom Typ "char name[20]", wenn Du Variablen mit 20 Zeichen Speicherplatz (inkl. '\0') möchtest.

OK?
 

Tux die Infobox
Gast





BeitragVerfasst am: 07. Feb 2001 16:09   Titel: Re: Zeichenketteneingabe (auch Anfängerfrage)

Danke Jochen...
 

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