Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Fehlermeldung bei switch..

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 <
010
20.03.2004, 19:52 Uhr
kronos
Quotenfisch
(Operator)


kleine anregung:

C++:
char c;
int x,y;
sscanf(ko.str(),"%c%i",c,y);


im fall von A1 hast du jetzt c=='A' und i==1
jetzt musst du noch aus 'A' die richtige koordinaten machn, dazu schaust du dir eine ascii-tabelle an und kommst dann auf sowas:

C++:
x=A-64;


x wäre bei A1 nun 1.

auf jeden fall solltest du nun die koordinaten prüfen, falls der user blödsinn eingegeben hat.
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
20.03.2004, 20:30 Uhr
Pablo
Supertux
(Operator)



Zitat:
Fraenky postete
in ko (koordinaten) stehen wie beim Schiffe versenken Koordinaten (A1, B5, ...) und wenn die Koordinate so und so in ko steht mache dies und das..

Dann werd ich mal jetzt zu if übergehen...*arbeit*

aso: ich will nicht char benutzen; mich hat das bloß gewundert, dass switch nicht mit string aber doch mit char geht

das mit strcpy(cko, ko.c_str()); klappt, aber irgendwie überspringt er jetzt den switch...egal ich lass es jetzt...


Ja, switch funktioniert mit char, aber mit Zeichenketten (für den Inhalt, also char*) nicht.
Wenn man

C++:
char* x = "Hallo";
switch(x)...



Ich weiß ehrlich nicht, ob der Kompiler das kompiliert oder Fehlermeldung spuckt. Wenn es den Code kompiliert, dann wird switch die Adresse des Zeigers vergleichen, nicht den Inhalt.

Du hast auch switch falsch benutzt, deshalb überpringt er immer die switch.

C++:
switch(cko[256])


bedeutet, überprüfe das Zeichen auf der 256. Stelle. Ein einziges Zeichen, also ein char, lässt sich als eine Zahl darstellen, z.b. die '0' ist in ASCII Code 48. Deshalb funktioniert char mit switch.

Da deine Koordinaten höchstens 2 Zeichen haben (so habe ich jetzt gemerkt), dann wird die 256. Stelle von cko fast immer nur Datenmüll haben.

Wenn du nur ein einziges Zeichen vergleichen willst, dann kannst du switch benutzen. Wenn du aber eine Zeichenkette vergleichen willst, dann musst du strcmp benutzen, wenn du char* hast, also C Strings, oder == wenn du die C++ Klasse string benutzt.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
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: