JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8f70cd433bb937543a75ee15d904a00dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Probleme mit Eingabe

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Newbie
Mini JLI'ler



Anmeldedatum: 08.03.2004
Beiträge: 2

Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 13:26    Titel: Probleme mit Eingabe Antworten mit Zitat

Hallo zusammen,

ich habe ein kleines Problem mit einem Progamm, wo ich grad mal so zur Übung gemacht habe.

Quelltext:

// Funktionen Übung

#include <iostream.h>


char x;
char y[10];

void Eingabe1(void);

void main(void)

{
cout << "Das Programm wird nun gestartet.\n\n";

cout << "Wollen Sie fortsetzen? J/N\n";

cin >> x;


if(x == 'j')

{
cout << "Okay\n";

Eingabe1();
}

else

{
cout << "Okay, das Programm wird nun beendet.\n";
}
}

void Eingabe1(void)

{
cout << "Bitte geben Sie nun Ihr Passwort ein:\n";

cin >> y;

if(y == "Schlaufux")

{

cout <<"Korrekt.\n";

}
else
{
cout <<"Ihr Passwort ist leider falsch, wiederholen Sie den Vorgang.\n";

}
}


So, das Problem beginnt jetzt mit der Passworteingabe. Oben bei J/N geht es problemlos und es springt dann auch richtig zur Funktion. In der Funktion aber nimmt es das Passwort "Schlaufux" nicht und meldet immer falsches Passwort. Habe ich irgendwas falsch gemacht (bzw. das was falsch ist ist klar, aber was)? Ich komm echt nicht dahinter..., mit nem "normalen" char (also ein Zeichen" geht es wieder...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 13:38    Titel: Antworten mit Zitat

versuchs mal mit string y anstatt den char[]. Oder benutze strcmp zum vergleichen von Strings.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 13:57    Titel: Antworten mit Zitat

Du kannst char[] nicht mit == auf Gleichheit prüfen.

Mit

char y[10] erzeugst du ein Array und reservierst Speicher für 10 char. Der Arrayname y ist genau genommen ein Pointer auf die Anfangsadresse des reservierten Speicherbereiches, was du mit

cout << y << " " << &y[0] << endl;

nachprüfen kannst.

Wenn p1 und p2 zwei Pointer sind, dann kannst du mit p1 == p2 feststellen, ob beide Pointer auf denselben Speicherbereich zeigen. Mit y == "schlaufux" prüfst du, ob y auf den Speicherbereich zeigt, wo die Konstante "schlaufux" gespeichert ist. Das wird niemals der Fall sein.

Was du willst, ist die Funktion "strcmp()". Hiermit kannst du zwei char[] mit strcmp(y,"schlaufux") auf Glerichheit überprüfen.


Allerdings empfehle ich dir, die Finger von char[] zu lassen und stattdessen den STL-string zu benutzen.
Dazu brauchst du die Header-Datei <string>, dann kannst du recht einfach mit STrings arbeiten:

string meinString = "blabgla"

if (meinSTring = "blafasel") {...}

Übrigens: <iostream.h> ist veraltet, man sollte <iostream> (also ohne .h) benutzen. Dann fürst du noch die Zeile

using namespace std;

ein, diese benötigst du auch für die strings.

viele Grüße
Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 14:13    Titel: Antworten mit Zitat

bei strcmp muss man aber soweit ich weiß noch aufpassen weil die funktion nicht true sondern false zurückgibt wenn die strings gleich sind.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 14:22    Titel: Antworten mit Zitat

War es nicht -1 wenn der erste Parameter lexikographisch kleiner ist, 0 bei Gleichheit und 1, wenn der erste Parameter lexikogr. größer ist?
Oder war das jetzt in Java?

cu Felix

PS: aber das sind Probleme, die sich durch einfaches Ausprobieren schnell lösen lassen Wink
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 15:10    Titel: Antworten mit Zitat

Ja, so müsste das sein.

PS: ausprobieren oder MSDN Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Newbie
Mini JLI'ler



Anmeldedatum: 08.03.2004
Beiträge: 2

Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 15:37    Titel: Antworten mit Zitat

@HotAcid
Vielen Dank, jetzt klappt die Sache wunderbar! Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 08.03.2004, 15:39    Titel: Antworten mit Zitat

gern geschehen Smile
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum