Odkaz na enum – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odkaz na enum – C / C++ – Fórum – Programujte.comOdkaz na enum – C / C++ – Fórum – Programujte.com

 

TomBar0
Newbie
9. 4. 2010   #1
-
0
-

Vytvořil jsem si enumeration s několika členy, ale nevím, jak na jednotlivé členy odkázat pomocí čísla. Použil jsem enum_name[n], ale kompilátor mi ukázal chybu "Expected primary-expression before '[' token"
Zkoušel jsem to i s '.' nebo '::' ale nic nefungovalo. Stálo to ukazovalo tu samou chybu.
Jak se prosím na takovéto členy odkazuje? A když mám v enum pouze text, můžu udělat nejaky_string=nejaka_enum?
Děkuji

Nahlásit jako SPAM
IP: 85.70.1.–
KIIV
~ Moderátor
+43
God of flame
9. 4. 2010   #2
-
0
-

mozna by stalo za to dat sem kousek kodu..

jinak pokud me pamet nesali, tak enum sou proste "nazvy" pro urcite ciselne hodnoty.. retezec se do toho mozna ani dat neda...
proste jak se rika: kdyz neco nefunguje, je na case otevrit manual - napriklad zde: http://www.builder.cz/art/cpp/cpp_enum.html

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TomBar0
Newbie
9. 4. 2010   #3
-
0
-

#include<iostream>
#include<string>
using namespace std;

struct CNazvoslovi{
enum Zaklady{litha,sod,drasel,rubid,ces,beryl,horec,vapen,stron,baryl,titan,vanad,niob,tanal,chrom,wolfram,mangan,rhen,zelez,osmi,cobal,rhod,irid,nikel,pallad,platin,stribr,zlat,zinec,kadm,rtur,bor,hlin,gal,ind,thal,uhel,krem,germa,cin,olov,dus,fosfor,arzen,antimon,bism,sir,selen,tellur,polon,fluor,chlor,brom,jod,astat};
enum Znacky{Li, Na, K, Rb, Cs, Be, Mg, Ca, Sr, Ba, Ti, V, Nb, Ta, Cr, W, Mn, Re, Fe, Os, Co, Rh, Ir, Ni, Pd, Pt, Ag, Au, Zn, Cd, Hg, B, Al, Ga, In, Tl, C, Si, Ge, Sn, Pb, N, P, As, Sb, Bi, S, Se, Te, Po, F, Cl, Br, I, At};
void oxidy(string);
void hydroxidy(string);
void sulfidy(string);
};

void CNazvoslovi::oxidy(string Oxid){
char Zna_1;
Zna_1=Oxid[0];
for (int m=0;m<2;m++){
if(Znacky[m]==Znacky[m]) cout<<"ahoj";
}
}
void CNazvoslovi::hydroxidy(string Hydroxid){}
void CNazvoslovi::sulfidy(string Sulfid){}

int main(){

char sVstup[8];
getline(sVstup,8);
for (int n=1;n<8;n++){
switch (sVstup[n]){
case 83: sulfidy(sVstup); n=8; break;
case 79:
if(n>1)
{if(sVstup[n+1]==72)hydroxidy(sVstup);
else oxidy(sVstup);} n=8; break;
default:
cout<<"tento program tuto slouceninu nepodporuje"; n=8;}
}

cin.get();
return 0;
}
ve výsledku to má dělat názvosloví jednoduchých sloučenin, ale k tomu to má ještě daleko. Jde mi o to, že chci zjistit, jestli je 1., případně první 2 písmena stejná, jako značka některého z prvků. Chtěl jsem to udělat právě pomocí odkazů na enum (ale byl to jen pokus, asi přejdu k něčemu praktičtějšímu)...

Nahlásit jako SPAM
IP: 85.70.1.–
KIIV
~ Moderátor
+43
God of flame
9. 4. 2010   #4
-
0
-

a jses si jist, zda nehledas spis std map (asociativni pole)? tak aby se dal prevest retezec na nejakou "hodnotu" a podle toho poznat o co jde?

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Enum — založil crash

C++0X - enum class — založil Jan Kubalek

Enum - change value — založil Kenvelo

Enum Flags — založil Miro1701

Enum - nefunguje — založil IDKFA

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý