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.
| |
| Statystyki tematu | Ostatnio przeczytali |
|---|
| Czytało użytkowników: | 20 | jacek_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 |
| Ostatnia Aktualizacja| 2010-09-01 19:27:34 (4 dni temu) | |
| Ostatnio aktywni |
|---|
| wiew | 24 min | | Koni | 34 min | | Mateusz124 | 37 min | | fish13 | 64 min | | wiewiorka | 77 min | | lenrokskate | 8 godz | | dmx81 | 10 godz | | steckel | 11 godz | | pixelmaster | 14 godz | | maciejo | 14 godz | | jurasnumeras | 15 godz | | Imperator_Edi | 16 godz |
|