Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zmienna typu string i instrukcja switch

Ostatnio zmodyfikowano 2011-07-31 23:23
Autor Wiadomość
Amigen
Temat założony przez niniejszego użytkownika
Zmienna typu string i instrukcja switch
» 2010-06-03 13:12:44
Witam szanownych userów.

Chciałbym prosić o pomoc w związku z instrukcją Switch.
Mianowicie problem mam takiego rodzaju iż podczas kompilacji mojego programu instrukcja switch wywala błędy:
 
error: switch quantity not an integer|
error: `COSTAM' was not declared in this scope|
error: `HELP' was not declared in this scope|

Co o pierwszego to wszystko jasne: zmienna musi być typu int a jest typu string.
Widziałem jednak programy które mając zmienną string w tym miejscu działały.
Jak to poprawić?
I o co chodzi z tymi deklaracjami (to są nazwy case'ów w switch'u)?
P-17497
ison
» 2010-06-03 14:03:09
Z tego co mi wiadomo na tym forum nie ma wróżek. Wklej kod. Nikt telepatycznie go od ciebie nie weźmie
P-17499
szyx_yankez
» 2010-06-03 14:03:58
Daj kod.
P-17501
Amigen
Temat założony przez niniejszego użytkownika
» 2010-06-03 17:53:27
Oto i kod, dodam tylko że zanim dodałem switch, to dobrze się kompilowało.
C/C++
#include <iostream>
#include <conio.h>
#include <string>
#include <stdio.h>


using namespace std;

//Deklaracje Zmiennych

string com;

//Deklaracje Funkcji

//Program
int main()
{
    cout << "Terminal 0.1a\n";
    cout << "---------------------------------------\n";
   
    do {
        cout << ">:";
        cin >> com;
       
        switch( com )
        {
        case HELLOWORLD:
            cout << "HELLO WORLD\n";
            break;
           
        case HELP:
            cout << "HELLOWORLD - Pokazuje napis Hello World\n";
            cout << "HELP - Pokazuje to Okno\n";
            cout << "EXIT - Wylancza program\n";
            break;
           
           
        default:
            cout << "Nieznana Komenda\n";
            break;
        }
       
       
    }
    while( com != "exit" );
   
    return 0;
}
P-17512
szyx_yankez
» 2010-06-03 18:21:27
Stringa nie zabardzo się da do switcha wsadzić gdyż warunek w switch musi być typu całkowitego, enumeracyjnego lub klasowego (w którym zdefiniowano jeden operator konwersji na typ całkowity), a wyrażenie w case musi być stałą całkowitą.
Aha jeszcze jedno nie pisze się tak:
C/C++
case HELP:
Tylko tak:
C/C++
case "HELP":
Gdyż string to nie enum czy dyrektywa define.
P-17516
Miquel
» 2011-07-31 23:23:50
Jesli w swoim programie chcesz uzyc zmiennej "string" uzyj instrukcji "if()..."

zadeklarowana zmienna nadaj w znacznikach "..."

string zmienna;
if (zmienna=="HELP")



P-37757
« 1 »
  Strona 1 z 1