12. september 2003 - 10:59Der er
4 kommentarer og 2 løsninger
Array af structs - Hvordan undersøges det om der er flere poster
Jeg modtager et array af SDataSource structs - og jeg kender ikke længden på arrayet. Jeg skal have udskrivet alt data fra arrayet. Men jeg må jo ikke udskrive mere data end der er. Hvordan undersøges det lettest om det er en gyldig struct på en bestemt plads i arrayet ??
I min .HPP fil: struct SDataSource { char name[19+1]; enum DataSourceType{ GAUGE, COUNTER, DERIVE, ABSOLUTE }; DataSourceType dataSourceType; int heartbeat; unsigned int minValue; unsigned int maxValue; };
I min .CPP fil: while( der er flere poster i arrayet ) { cout << dataSources[i].name; cout << dataSources[i].maxValue; cout << dataSources[i].minValue; }
Jeg er enig i ovenstående, men hvis ikke du selv bestemmer formatet på datatypen, så må man lave noget grimt kode, hvor du validerer name og dataSourceType mod forventede værdier og så læser ud over arrayet. Du skal måske pakke en sådan kode ind i en try/catch-blok: try { cout << osv. } catch (...) {} for at fange exceptions. Opstår en exception, kan du være (næsten) sikker på at du har læst for langt ((...) fanger dog alle exceptions - det kan nok gøres bedre).
Jeg brugte en list hvor jeg pusher og popper elementer!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.