gunnelus Skrevet 2. desember 2005 Del Skrevet 2. desember 2005 Jeg er en fersking i C++ og prøver å få følgende kodesnutt til å fungere. Det jeg primært ønksker er at "Command Prompt"-vinduet skal stoppe opp, slik at jeg får tid til å studere resultatet som programmet genererer. Jeg bruker en kondesnutt som Myubi har foreslått i denne tråden., og den fungerte fint når jeg bare kjørte SNUTT 1, men når jeg kun kjører SNUTT 2 stopper ikke programmet opp og venter på ENTER. For øvrig programmerer jeg i BloodShed Dev-C++ ver.4.9.9.2. Er det noen som har forslag til løsning? =================================== #include <iostream> #include <limits> #include <stdio.h> void wait() { std::cin.ignore(std::numeric_limits<int>::max(), '\n'); } int main() { /* // SNUTT 1 int a, b, c; a = 5; b = 7; c = a + b; printf("%d + %d = %d\n", a, b, c); */ // SNUTT 2 int a, b, c; printf("Enter the first value:"); scanf("%d", &a); printf("Enter the second value:"); scanf("%d", &b); c = a + b; printf("%d + %d = %d\n", a, b, c); std::cout << "Trykk ENTER for å avslutte.\n"; wait(); } =============================== Lenke til kommentar
GenericName Skrevet 2. desember 2005 Del Skrevet 2. desember 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
lodott Skrevet 3. desember 2005 Del Skrevet 3. desember 2005 Legg til: int temp; std::cin >> temp; På slutten... Lenke til kommentar
Dead_Rabbit Skrevet 3. desember 2005 Del Skrevet 3. desember 2005 (endret) #include <iostream> #include <limits> #include <cstdio> //Endret fra studio.h void wait() { std::cin.ignore(std::numeric_limits<int>::max(), '\n'); } int main() { /* // SNUTT 1 int a, b, c; a = 5; b = 7; c = a + b; printf("%d + %d = %d\n", a, b, c); */ // SNUTT 2 int a, b, c; printf("Enter the first value:"); scanf("%d", &a); printf("Enter the second value:"); scanf("%d", &b); c = a + b; printf("%d + %d = %d\n", a, b, c); std::cout << "Trykk ENTER for å avslutte.\n"; wait(); std::cin.get(); //La til denne linja } Grunnen til at jeg la til den nest siste linja der, er at den tar imot et tegn fra brukeren. wait() funksjonen basser bare på at ingen av de tegnene du har tastet før blir "hengende" igjen, etter de forrige inntastingene. Dette kan du lese mer om i en bok -- noe man absoluttt bør investere i, om man virkelig har lyst til å lære seg språket! En mer C++-ish måte ville vel kansje vært å bytte ut printf funksjonene med std::cout og scanf med std::cin til å printe ut og ta imot input, men begge deler er greit og like "lovlig". Forresten, bra at du har tatt deg tid til å søke på forumet først og litt sånt! (Si ifra om dette var litt dårlig formulert, så skal jeg omformulere det, heh. Begynner å bli litt seint her nå skjønner du ) prog master: Hva vil det der hjelpe? Edit: Er jo selfølgelig ikke noe sjakktrekk av meg å fjerne #include <iostream> når trådstarter bruke std::cout i koden sin, hehe. Endret 3. desember 2005 av zirener Lenke til kommentar
GenericName Skrevet 3. desember 2005 Del Skrevet 3. desember 2005 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
gunnelus Skrevet 3. desember 2005 Forfatter Del Skrevet 3. desember 2005 Tusen takk for hjelpa zirener! Etter å ha lagt inn forslaget ditt fungerer programmet helt fint, nå stopper det pent og pyntelig opp slik at jeg kan studerer utskriftsresultatene. Deilig å få en løsning på problemet. OK, da er det bare å fortsette "The long and winding road" for å lære seg C/C++ - programmering... Lenke til kommentar
Dead_Rabbit Skrevet 3. desember 2005 Del Skrevet 3. desember 2005 gunnelus: Det er bra! prog master: Det er jo nettopp derfor vi har den wait() funksjonen. std::cin.get() venter på input fra brukeren, men hvis det "henger igjen" noe fra forrige inntasting, så tar den imot det istedenfor å vente på at brukeren skal taste inn noe. Derfor fortsetter programmet, og siden det da ikke er mer som skal gjøres, terminerer det. Står som nevnt ovenfor mye om dette i de fleste nybegynner-bøkene om C++- Lenke til kommentar
GenericName Skrevet 3. desember 2005 Del Skrevet 3. desember 2005 (endret) ... Endret 11. januar 2011 av Token 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å