Brugle Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 Jeg prøver å lære litt C++ kan en del Perl, men ikke noen proff. Men når jeg prøver å lage et consol program der jeg har en "while" setning med cin inni, så gjør den det første gang og så hopper den over resten. Den couter men ikke cin'er. while (Usermaksantalldager >= Tempdager) { cout << endl << "Hva heter dag nummer " << Tempdager << ": "; cin >> Dager[Tempdager]; Tempdager++; } Lenke til kommentar
Herr_Dude Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 Ser jo ikke hele koden her, men et par ting du kan sjekke: - initialiserer du verdiene dine ? - Hva er typen til Dager ( og forsåvidt de andre (prøver du å lese en streng er ikke det helt trivielt for en nybegynner i c++, en integer verdi skal være grei) ) ? Tipper helst det er ved punkt 2 problemet ligger... Lenke til kommentar
Brugle Skrevet 24. februar 2004 Forfatter Del Skrevet 24. februar 2004 Det er nok nummer to ja.. At jeg ikke tenkte på det.. Men hvordan fikser jeg det sånn at den kan lese inn en streng da. Jeg har egentlig intialisertden som en integer, kanskje det burde stått char. Er det noe annet som må fikses? Lenke til kommentar
<BøNilzen> Skrevet 24. februar 2004 Del Skrevet 24. februar 2004 (endret) For å lage an array av strenger kan du vel bruke en array av pekere, som f.eks. char *Dager[7] Endret 24. februar 2004 av <BøNilzen> Lenke til kommentar
☀ ❄ Skrevet 24. februar 2004 Del Skrevet 24. februar 2004 Med mindre du har en veldig god grunn til å la være anbefaler jeg å benytte seg av Standard C++ Library: #include <iostream> #include <vector> #include <string> using namespace std; // Lager en vector (et slags "sikkert" array som kan utvides / trekkes sammen) // som heter Dager, med 7 string-elementer vector<string> Dager(7); // ... while (Usermaksantalldager >= Tempdager) { cout << endl << "Hva heter dag nummer " << Tempdager << ": "; cin >> Dager[Tempdager]; Tempdager++; } Vær oppmerksom på at en vector teller som vanlige arrays i C++: Fra 0 til størrelsen-1 Lenke til kommentar
_TT_ Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 Er det ikke mye enklere å bruke printf() istedenfor cout og gets() isteden for cin ? Lenke til kommentar
A_N_K Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 Hvorfor skulle gets/printf være enklere i dette tilfellet? Med std::string slipper du å tenke på størrelsen av strengen, dessuten anbefales ikke bruk av gets på grunn av faren for bufferoverflyt. Lenke til kommentar
☀ ❄ Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 Og printf er ikke type-safe, er ikke ditt, er ikke datt, osv. Slikt står da i alle bøker? (F.eks. Item 2 i Effective C++, hvis jeg ikke husker feil). Lenke til kommentar
Duronator Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 Selv om det hender seg jeg bruker printf() og gets() noen ganger, så tror jeg det er best du vender deg til å bruke så c++'ish kode som mulig, hvilket er mye bedre når du lager større programmer som pga. dette blir mer oversiktlige. Lenke til kommentar
A_N_K Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 Jeg sier ikke at det nødvendigvis er noe galt med C-funksjoner som printf etc., så vidt jeg vet er den typiske C-implementasjonen av IO raskere enn C++ streams (mye pga. automatisk formattering i streams vil jeg tro). Men i dette tilfellet ser jeg ikke poenget. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå