Kezdőoldal » Számítástechnika » Programozás » C++ ba mért hozza ki hogy...

C++ ba mért hozza ki hogy "switch quantity not an integer"?

Figyelt kérdés

string betu;

int c1=0,h1=0,o1=0,n1=0,s1=0;

ifstream myfile2 ("bsa.txt");

myfile2 >> betu;

while(!myfile2.eof())

{

switch(betu)

{

case "C":

c1++;

h1+=2;

o1++;

break;

case "H":

h1++;

h1+=2;

o1++;

break;

case "O":

o1++;

h1+=2;

o1++;

break;

case "N":

n1++;

h1+=2;

o1++;

break;

case "S":

s1++;

h1+=2;

o1++;

break;



}

myfile2 >> betu;

}



2014. ápr. 16. 21:48
 1/7 anonim ***** válasza:
Ezek szerint oda char, vagy integer(int) kell, a string nem jó, mivel lényegében char tömb..
2014. ápr. 16. 21:50
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Switchben csak integrális típus, char és talán enum lehet.

Eleve a kódod tervezése is hibás egy betű az nem string, hanem egy karakter, tehát

char betu;

legyen.

2014. ápr. 16. 22:01
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
"talán enum" :) pont az enum és a switch case a case-ben járnak általában (jó, ez szar volt, sorry, de így van:D)
2014. ápr. 16. 23:30
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
Ha már "char betu" lesz, akkor a "C"-ből legyen 'C' (+ a többi is!), mert ugye karaktert aposztrófok (') közé írunk, stringet pedig idézőjelek (") közé.
2014. ápr. 17. 09:21
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Köszi a segítséget!
2014. ápr. 17. 12:34
 6/7 anonim ***** válasza:

A "C" egy string literal, azaz egy mutató. Így nem lehet switch-ben használni. A case-eknél csak olyan típus lehet ami egész. Ilyen például a char vagy az enum is, ezek konkréten egész számok, de bármi jó ami implicit kasztolható egésszé.


Cseréld ki a "-t '-re és már működik is.

2014. ápr. 18. 16:04
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
switch-ben csak sorszámozható típust lehet megadni.
2014. ápr. 24. 12:29
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!