Lucifer89 Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 (endret) jeg har just begynt å løære meg C++ og jeg kjøpte en C++ bok men det rare er at i boken sier de at jeg skal skrive return 0; men når jeg starter programmet så bare blinker Cmd på og så av men hvist jeg prøver cin.get(); så kommer det slik det skal. Hvorfor det Hva er rett #include <iostream> using namespace std; int main() { cout << "Name: Lian, Thomas Andree"; cout << "\nStreet Address: Parks Dr 403"; cout << "\nCity: Glenwood Springs State: CO, Colorado Zip: 81602"; cin.get(); eller return 0; } Endret 3. oktober 2006 av Lucifer89 Lenke til kommentar
lnostdal Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 (endret) bruk "begge": ... cin.get(); return 0; } Endret 4. oktober 2006 av lnostdal Lenke til kommentar
Lucifer89 Skrevet 4. oktober 2006 Forfatter Del Skrevet 4. oktober 2006 hmm takk hva er return 0; til og hva er cin.get(); til? Lenke til kommentar
lnostdal Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 (endret) hmm takk hva er return 0; til og hva er cin.get(); til? 6996126[/snapback] om ikke boka nevner alt med en gang; forsøk å fokusere på de delene den forklarer nå - så forklarer den resten siden `cin.get()' gjør at programmet venter til du har trykket enter før det fortsetter å kjøre funksjonen `main' returnerer en `int', altså et heltall: int main() { ... } ..så `return 0' forteller at heltallet `main' skal returnere er 0 om andre programmer starter programmet ditt, så leser de av hva funksjonen `main' i programmet ditt returnerer - og om 0 returneres så betyr det at "alt gikk bra".. edit: denne tråden hører forøvrig hjemme under C/C++-forumet .. skal høre om noen kan flytte den Endret 4. oktober 2006 av lnostdal Lenke til kommentar
aklla Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 har opplevd problemer med cin.get(); noen ganger, at koden hopper over denne på en måte, hvis du skriver den 2 ganger, har dette blitt løst, like this: cin.get(); cin.get(); return 0; } jeg bruker alltid dette i mine koder, for å sikre at den tar med seg cin.get() Lenke til kommentar
................... Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 (endret) ... Endret 10. juli 2010 av ................... Lenke til kommentar
lnostdal Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Det at den "hoppes" over, er at det fortsatt ligger symbol(er) i bufferet. Så hvis du flusher stdin, så skal bufferet være tomt. Hvis jeg ikke tar helt feil. 7006288[/snapback] jupp, noe slikt: cin.clear(); cin.ignore(std::numeric_limits<streamsize>::max(), '\n'); cin.get(); Lenke til kommentar
Dead_Rabbit Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Og grunnen til at dette bufferet ikke er tomt, er p.g.a. at newline-tegnet fra enter-tasten "henger igjen" etter at man har skrevet inn en verdi og trykket enter. Derfor tar cin.get() imot dette tegnet, og det har derfor ikke ønsket effekt. Lenke til kommentar
Roptaty Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 #include <iostream> using namespace std; int main() { cout << "Name: Lian, Thomas Andree"; cout << "\nStreet Address: Parks Dr 403"; cout << "\nCity: Glenwood Springs State: CO, Colorado Zip: 81602"; cin.get(); eller return 0; } 6995852[/snapback] Du skriver at cmd blinker på og av... Mener du her at cmdvinduet åpnes og forsvinner med en gang? I så fall blir teksten skrevet ut, men man rekker ikke å lese teksten før prosessen har avsluttet. cin.get forhindrer at prosessen avsluttes ved å spørre om data fra brukeren. Du kan prøve å kjøre cmd, gå inn på katalogen med den aktuelle exefilen og kjøre denne. Du vil antakelig nå se all data slik som du forventer... Lenke til kommentar
mrjohnsen Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 #include <iostream> using namespace std; int main() { cout << "Name: Lian, Thomas Andree"; cout << "\nStreet Address: Parks Dr 403"; cout << "\nCity: Glenwood Springs State: CO, Colorado Zip: 81602"; system("pause"); return 0; } Skriv heller sånn. Hvilken kompiler bruker du ? Hadde du brukt Visual C++ ville kompiler ikke trengt noe annet enn return 0. Lenke til kommentar
lnostdal Skrevet 12. oktober 2006 Del Skrevet 12. oktober 2006 (endret) Hadde du brukt Visual C++ ville kompiler ikke trengt noe annet enn return 0. 7056095[/snapback] Bruker man WC++ angrer man på det siden. .. uansett er det du sier galt eller dumt: * det er ikke portabelt * programmet lukker seg når man starter det fra Exploder (om ikke WC++ legger til noe borka kode som tar spesialhensyn i sammenheng dette ellernoe) ..i tillegg finnes det andre IDEer (det du feilaktig antar kun er en "kompiler") som holder vinduet oppe for deg, men dette er ikke poenget - og det er ikke en gang et betydelig issue.. edit: om man avslutter programmet sitt med følgende kode er man sikret noe som fungerer og er portabelt: cin.clear(); cin.ignore(std::numeric_limits<streamsize>::max(), '\n'); cin.get(); ..noen rett meg om jeg har glømt noe her, så legger jeg til en seksjon her http://www.linuxguiden.no/index.php/C_Plus...B8r_jeg_ser_noe om dette .. (det nytter ikke å vedlikeholde en FAQ i et forum; eneste er om man oppretter en felles bruker, men en wiki er uansett mer fleksibel) Endret 12. oktober 2006 av lnostdal 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å