WinFuture-Forum.de: Switch Und Case - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Switch Und Case


#1 Mitglied ist offline   Mal4ik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 645
  • Beigetreten: 22. Januar 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Februar 2005 - 17:39

Habe ein Problem und zwar möchte ich eine Abfrage machen wo ich ein Wort eingeben kann und dann ein bestimmt Programmteil startet.
Habe das zwar mit switch und case versucht sprich so ein format:

#include<conio.h>
#include<iostream.h>

int main() // Start des Programms
{
short wert

cin>>wert;

switch(wert)
{
case 1: cout<<"test 1";
break;
case 2: cout<<"test 2";
break;
default: "Falsche Eingabe"
}

return 0;
}

doch das Problem ist man kann dann nur die Zahl eingeben und dann wird der teil gestartet und mit einzelnen Buchstaben geht das auch aber nicht mit Wörtern !!
Oder gibt es da noch einen anderen Befehl dafür ? sprich kann die switch Anweisung sowas gar nicht ?
//**~ Mal4ik ~**//
0

Anzeige



#2 Mitglied ist offline   Talla 

  • Gruppe: aktive Mitglieder
  • Beiträge: 225
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Esslingen

geschrieben 08. Februar 2005 - 17:47

Die Antwort ist nein, mit Zeichenketten kann das switch in C++ nicht umgehen. Bei einer Sprache wo ich mir sicher bin das es geht ist C#.
Heimat ist nicht immer dort, wo wir zur Welt kamen - Heimat ist wo wir lieben. *Ehm Welk
0

#3 Mitglied ist offline   Mal4ik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 645
  • Beigetreten: 22. Januar 05
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Februar 2005 - 18:02

achso, ja ..........hm................kennt jemand denn einen Befehl wie man bei c++ sowas realisieren kann ?
//**~ Mal4ik ~**//
0

#4 Mitglied ist offline   gorko122 

  • Gruppe: aktive Mitglieder
  • Beiträge: 85
  • Beigetreten: 12. November 04
  • Reputation: 0
  • Wohnort:Hartberg - Österreich

geschrieben 08. Februar 2005 - 18:59

#include<conio.h>
#include<iostream.h>

int main() // Start des Programms
{
char wert[100],wert1[]="Hallo", wert2[]="Test";
int eingabe_ok=0

cin>>wert;

if(!strcmp(wert,wert1))
{
cout<<"Hallo";
eingabe_ok=1;
}

if(!strcmp(wert,wert2))
{
cout<<"Test";
eingabe_ok=1;
}

if(!eingabe_ok)
cout<<"Falsche Eingabe";

return 0;
}

so könnte man das realisieren...
geht aber sicher noch einfacher bzw. kürzer, hatte aber nicht die nötige zeit, dies zu programmieren (bin gerade in eile)
0

#5 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 08. Februar 2005 - 19:10

hmm geht strtoint mit C++ nicht mehr?
int i = strtoint(eingabechararray);

wenn du die eingabe in einen string speicherst, waers gut moeglich, dass die string-klasse an sich auch konvertierungsmethoden auf integer anbietet. siehe c++ referenzseiten.

edit: ah, habs falsch verstanden ...

Dieser Beitrag wurde von mo bearbeitet: 10. Februar 2005 - 11:25

I'm mó. mo's good twin.
0

#6 Mitglied ist offline   gorko122 

  • Gruppe: aktive Mitglieder
  • Beiträge: 85
  • Beigetreten: 12. November 04
  • Reputation: 0
  • Wohnort:Hartberg - Österreich

geschrieben 08. Februar 2005 - 19:18

Zitat (mo: 08.02.2005, 20:10)

hmm geht strtoint mit C++ nicht mehr?
int i = strtoint(eingabechararray);

wenn du die eingabe in einen string speicherst, waers gut moeglich, dass die string-klasse an sich auch konvertierungsmethoden auf integer anbietet. siehe c++ referenzseiten.
<{POST_SNAPBACK}>



doch StrToInt geht schon noch, aber was soll das bringen?

Er will doch strings vergleichen, nicht zu int convertieren
0

#7 Mitglied ist offline   markus_83_nrw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 615
  • Beigetreten: 21. Juli 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bonn

geschrieben 08. Februar 2005 - 21:11

@ Talla: zum teil fallsche aussage, du kannst es mit einem char der länge eins machen!
@ mo: warum sollte er das den convertieren wollen? convertiere mal 'h' zu einer zahl *G*

LOL fast richtig Mal4ik, es sollte so aussehen:

#include<iostream.h>

void main() // Start des Programms
{
  char wert;

  cin>>wert;

  switch(wert)
  {
    case 'h': cout<<"test 1";
        break;
    case '4': cout<<"test 2";
        break;
    default: cout<<"Falsche Eingabe";
  }

}


h und 4 sind die werte die die variable "wert" annehmen kann.

Gruß MArkus

Dieser Beitrag wurde von markus_83_nrw bearbeitet: 08. Februar 2005 - 21:24

Rechtschreibfehler dienen der Belustigung der Leser :D :D
--------------------
Tower: Chieftec - "Medium Tower" der Dragon Serie Blau
CPU: 3.2 GHz AEP bei IDEL 35°-36° bei VOLLLAST ~ 45° (Windows Vista Index: 4,3)
Speicher: 2 GB MDT RAM (4*512 MB RAM PC3200) (Windows Vista Index: 4,5)
GraKa: GeCube ATI Radeon X1950 Pro @ Standard: 575/1380 (Windows Vista Index: 5,9)
HDDs: 80GB Seagate SATA 7200 Umin + 30GB Maxtor PATA (Windows Vista Index: 4,9)
Mainboard: Gigabyte 4P Titan; Chipsatz 865PE
Sound: Sound Blaster Audigy 2 ZS
OS: Windows Vista Ultimate - vLite Edition :D
Breitband: 3PLAY (ISH) 6000 MBit / pings bei ~40
0

#8 Mitglied ist offline   Talla 

  • Gruppe: aktive Mitglieder
  • Beiträge: 225
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Esslingen

geschrieben 08. Februar 2005 - 21:35

Zitat (markus_83_nrw: 08.02.2005, 21:11)

@ Talla: zum teil fallsche aussage, du kannst es mit einem char der länge eins machen!
....
Gruß MArkus


Denke mal du hast ihm das bestätigt was er eh schon weiß:

Zitat

doch das Problem ist man kann dann nur die Zahl eingeben und dann wird der teil gestartet und mit einzelnen Buchstaben geht das auch aber nicht mit Wörtern !!


und nen einzelnes Zeichen ist auch keine Zeichenkette!

Greetz
Heimat ist nicht immer dort, wo wir zur Welt kamen - Heimat ist wo wir lieben. *Ehm Welk
0

#9 _Newlukai_

  • Gruppe: Gäste

  geschrieben 11. Februar 2005 - 10:58

Zitat (markus_83_nrw: 08.02.2005, 21:11)

@ Talla: zum teil fallsche aussage, du kannst es mit einem char der länge eins machen!

Für alle Klugscheißer in da House (also für Dich und mich): Es gibt kein char der Länge eins. Definitiv nicht! Es gibt den einfachen Datentyp char und es gibt Felder (Arrays). Ein Array kann Werte des Typs char speichern und eine gewisse Länge haben (Anzahl der chars die gespeichert werden können), u.a. auch die Länge 1.

Zitat (markus_83_nrw: 08.02.2005, 21:11)

@ mo: warum sollte er das den convertieren wollen? convertiere mal  'h' zu einer zahl *G*

Meinst Du Dein Prozzi versteht was von Zeichen, geschweige denn von Zeichenketten?
Laut ASCII-Tabelle entspricht 'h' der Zahl 104. Doch auch diese dezimale Darstellung versteht der Prozessor nicht, sondern nur die dezimale 68.

Zitat (markus_83_nrw: 08.02.2005, 21:11)

h und 4 sind die werte die die variable "wert" annehmen kann.

Das ist ja mal ein lustiger Datentyp *g*
0

#10 Mitglied ist offline   Konrad 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 12. Februar 05
  • Reputation: 0

geschrieben 12. Februar 2005 - 21:15

Hi,

Ich wollte nur schnell mal eben ein paar Kommentare zum Thread abgeben.

1. iostream.h ist veraltet. Der aktuelle Standard verwendet nur noch iostream und dazu noch den Namespace std. Das ganze sieht so aus und bewirkt erstmal das gleiche wie dein bisheriger Code.
#include <iostream>
using namespace std;


2. die main Funktion in C++ kennt nur 2 "Formen".
int main() 
int main(int argc, char *argv[]) //Das Äquivalent zu *argv[] ist **argv

void main() ist _nicht_ Standardkonform.

4. StrToInt

Zitat

hmm geht strtoint mit C++ nicht mehr?
int i = strtoint(eingabechararray);

wenn du die eingabe in einen string speicherst, waers gut moeglich, dass die string-klasse an sich auch konvertierungsmethoden auf integer anbietet. siehe c++ referenzseiten.

String bietet soweit Ich weiß keine Konvertierungsmethoden dafür aber mittels eines StringStreams (#include <sstream>) ginge so etwas sehr einfach.
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
int zahl;
string str = "54";
stringstream sstr;

sstr << str;
sstr >> zahl; //zahl = 54

Auch wenn man keinen StringStream nehmen möchte könnte man immer noch versuchen portabel, also Standardkonform zuarbeiten, und die Funktion atoi() aus der <cstdlib> nehmen.

Ich weiß nicht in wie weit euch das obige bekannt ist. Ich hoffe aber das dieser Post nicht negativ bewertet wird bzw. einen negativen Eindruck von mir gibt. :D

Dieser Beitrag wurde von Konrad bearbeitet: 12. Februar 2005 - 21:15

0

#11 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 12. Februar 2005 - 21:39

1. Ich misse den Namespaces c++stdlib und stl.
2. Nein, siehe C++ Exception im C++98-Standard.
4. Warum nicht einfach (int)(Integer)TheString?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#12 Mitglied ist offline   cha0z 

  • Gruppe: Mitglieder
  • Beiträge: 15
  • Beigetreten: 14. Februar 05
  • Reputation: 0

  geschrieben 18. Februar 2005 - 14:06

also irgendwie seid ihr alle 'n bissel kompliziert drauf oder so. :gähn:
er schreibt:

short wert

:)


das kann doch auch nich mit wörten funzen...
da brauch man eine variable die text unterstüzt da short nur bestimmte zahlen unterstützt. Also nen:

#include <string.h>


mit string geht das...
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0