Serwis został przeniesiony pod nową domenę: http://cpp0x.pl/
PowrótPowrótHistoria odwiedzonych stron
AutorWiadomość
Data: 2010-06-03 13:12:44

Amigen
[C++]Zmienna typu string i instrukcja switch

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)?

Data: 2010-06-03 14:03:09

ison


Z tego co mi wiadomo na tym forum nie ma wróżek. Wklej kod. Nikt telepatycznie go od ciebie nie weźmie

Data: 2010-06-03 14:03:58

szyx_yankez


Daj kod.

Data: 2010-06-03 17:53:27

Amigen


Oto i kod, dodam tylko że zanim dodałem switch, to dobrze się kompilowało.

#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;
}
Data: 2010-06-03 18:21:27

szyx_yankez


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:


case HELP:


Tylko tak:


case "HELP":


Gdyż string to nie enum czy dyrektywa define.

1



Statystyki tematuOstatnio przeczytali
Czytało użytkowników:20jacek_k, Czarnt, malan, SeaMonster131, Rantrave, birkofm, pixelmaster, Iname (√ιק), TheLukon, michalp, lenrokskate, madmike44, szyx_yankez
Przeczytało użytkowników:13
Czytało osób ogólnie:38
Przeczytało osób ogólnie:27



PowrótPowrótHistoria odwiedzonych stron
Panel Logowania
Login:
Hasło:

Użytkowników
Obecnie aktywnych:12
Zalogowanych:0
Zarejestrowanych:4367
Ostatnie 24h:538
Non-cookie 24h:2685
Wszystkich:214118
Ostatnia Aktualizacja
2010-09-01 19:27:34 (4 dni temu)
Ostatnio aktywni
wiew24 min
Koni34 min
Mateusz12437 min
fish1364 min
wiewiorka77 min
lenrokskate8 godz
dmx8110 godz
steckel11 godz
pixelmaster14 godz
maciejo14 godz
jurasnumeras15 godz
Imperator_Edi16 godz

Wynajem Sopot - wakacje
Pokój 2 osobowy 130zł/doba;
Lokalizacja: Sopot


O portaluArchiwumHistoriaIndeksRegulaminWyszukiwarkaLinki
Kurs HTML - strona WWW za darmoRestauracja "ATOL" - SopotValid HTML 4.01 TransitionalValid CSS!HTML CSS JavaScript FLASH PHP MySQL