Ok, klarte å få det til slikleis:
Kode
void Topp::lesData(char nvn[]) {
Topp nvnn;
char moh1[] = "Meter over havet?";
char hoyde1[] = "Hoyde fra start?";
char lengde1[] = "lengde fra start?";
strcpy(nvnn.navn, nvn);
nvnn.moh = les(moh1, 0, 8848);
nvnn.hoyde = les(hoyde1, 0, 8848);
nvnn.lengde = les(lengde1, 0, 50);
}
Og med denne
Kode
void nyTopp() { // Legger inn en ny topp:
char toppNavn[STRLEN];
if (sisteTopp < MAXTOPPER) { // Plass til flere:
cout << "skriv ny toppnavn: ";
cin >> toppNavn;
if (finnTopp(toppNavn) == 0) {
toppene[++sisteTopp].lesData(toppNavn);
}
else
{
cout << "Den toppen eksisterer allerede.";
}
}
else {
cout << "\n\n\tFullt med topper i datastrukturen! \n\n";
}
}
Nå lurer jeg på følgende oppgave:
Det jeg sliter med er å finne ut av hvor mange topper etappen går innom og hvordan jeg skal gjengi dette. Tenkte først noe alla dette:
Kode
for (int i = 0; i < (sizeof(toppene) / sizeof(toppene[0])); i++) {
char etappeTopp[STRLEN];
cout << "\nTopper som inngår i etappen, nr " << i + 1 << ": ";
cin >> etappeTopp;
finnTopp(toppene[i].navn);
}
men det fungerer jo ikke da, den vil fortsette å spørre helt til alle toppene er gjennomgått, og alle toppene er jo ikke på alle etappene.
Dette er forøvrig hele funksjonen jeg har så langt:
Kode
void Etappe::lesData() {
Etappe nyEtappe;
const char start[STRLEN] = "Startsted?";
const char slutt[STRLEN] = "Sluttsted?";
const char lengde1[STRLEN] = "Lengde i km?";
const int lengden = STRLEN;
char startSvar[STRLEN];
char sluttSvar[STRLEN];
les(start, startSvar, lengden);
les(slutt, sluttSvar, lengden);
for (int i = 0; i < (sizeof(toppene) / sizeof(toppene[0])); i++) {
char etappeTopp[STRLEN];
cout << "\nTopper som inngår i etappen, nr " << i + 1 << ": ";
cin >> etappeTopp;
finnTopp(toppene[i].navn);
}
strcpy(nyEtappe.startsted, startSvar);
strcpy(nyEtappe.sluttsted, sluttSvar);
nyEtappe.lengde = les(lengde1, 0, 50);
nyEtappe.antTopper =
}