Ga naar inhoud

C++ "return 0;"


Aanbevolen berichten

Hallo! Ik programmeer in C++ simpele programma's. Ik heb geleerd om elk programma af te sluiten met "return 0:", hierdoor gaat de computer terug naar het besturingssysteem (in mijn geval Windows of Linux). Ik wil graag dat het programma pas afsluit als de gebruiker dat opgeeft. IK heb i.p.v. return 0 geprobeerd om het programma in een loop te laten lopen. Elk cijfer stelt dan een keuze voor, als de gebruiker een te hoog cijfer intypt dan stopt de loop en sluit het programma af. Ik ben hier niet echt tevreden mee en ik zou dan ook graag willen weten op welke manier ik return 0 kan vervangen.
Link naar reactie
Onderstaande code wacht op een 'q' of een 'e' en sluit dan af. De 'q' of 'e' worden dan doorgegeven aan de shell via het return statement. Het getal dat je terug geeft aan de shell kan gebruikt worden in scripts om te testen op bv fouten. Ik weet niet of dit je op het goede spoor zet, laat maar horen als je meer info nodig hebt. [code:1:47f8be7dc4] #include <stdio.h> int main() { char ch=0; while(ch!='q' && ch !='e') { ch=getchar(); } printf("done, returning '%c'\n",ch); return ch; }[/code:1:47f8be7dc4]PS getest onder Linux.
Link naar reactie
in C++ zoals de TS vroeg ;-): Code vraagt een getal als keuze en kijkt of de input van de gebruiker geldig is. Ja-> laat keuze zien. Nee-> vraag opnieuw om keuze. Als een keuzenummer wordt gegeven dat buiten het bereik (hier 0 t/m 2) valt stopt het programma en geeft het de laatste keuze door aan het systeem via het return-statement van de main()-functie. [code:1:da6c7e93f7] #include <iostream> int main() { int keuze=0; const int laagste_keuze=0; const int hoogste_keuze=2; do { std::cout<<"\nTyp het nummer van de actie die u wilt uitvoeren: "; std::cin>>keuze; if(std::cin) { //goede input std::cout<<"U keuze was: "<<keuze<<std::endl; } else { //slechte input std::cin.clear(); std::cin.ignore(INT_MAX,'\n'); keuze=laagste_keuze; } }while(keuze>=laagste_keuze && keuze<=hoogste_keuze); std::cout<<"Einde van het programma\n"; return(keuze); } [/code:1:da6c7e93f7] Andreas -- "I have a rendezvous with Death" - Alan Seeger
Link naar reactie
  • 3 weken later...
[quote:b069a77f1f="Chris_GbaSpDude"]Hallo! Ik programmeer in C++ simpele programma's. Ik heb geleerd om elk programma af te sluiten met "return 0:", hierdoor gaat de computer terug naar het besturingssysteem (in mijn geval Windows of Linux). Ik wil graag dat het programma pas afsluit als de gebruiker dat opgeeft. IK heb i.p.v. return 0 geprobeerd om het programma in een loop te laten lopen. Elk cijfer stelt dan een keuze voor, als de gebruiker een te hoog cijfer intypt dan stopt de loop en sluit het programma af. Ik ben hier niet echt tevreden mee en ik zou dan ook graag willen weten op welke manier ik return 0 kan vervangen.[/quote:b069a77f1f] Er zijn een legio mogelijkheden om dit te doen. Maar ja, in C++ zijn bijna alle problemen op 1000 manieren op te lossen. De loop is een goede manier om het te doen. Hier is mijn oplossing: [code:1:b069a77f1f] //Includes, prototyping, etc.... int main () { //Bla bla //Hier je menu int keuze; cin >> keuze; if (keuze ==//Hier je voorwaarden) { } else { exit (1); //Sluit het programma/thread direct af en gaat gelijk terug naar het aanroepende proces } //Bla bla return 0; } [/code:1:b069a77f1f]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...