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
Fórum › C / C++
Odkaz na enum
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
#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)...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
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