anoniem Geplaatst: 2 juli 2003 Delen Geplaatst: 2 juli 2003 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 Link naar reactie
anoniem Geplaatst: 3 juli 2003 Auteur Delen Geplaatst: 3 juli 2003 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. Quote Link naar reactie
anoniem Geplaatst: 3 juli 2003 Auteur Delen Geplaatst: 3 juli 2003 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 Quote Link naar reactie
anoniem Geplaatst: 4 juli 2003 Auteur Delen Geplaatst: 4 juli 2003 [quote:f9d45ccedd="AndreasV"]in C++ zoals de TS vroeg ;-):[/quote:f9d45ccedd]Tja, dat is aan mij niet besteed; ik probeer er zover mogelijk vandaan te blijven en tot nu toe lukt dat redelijk 8) Quote Link naar reactie
anoniem Geplaatst: 4 juli 2003 Auteur Delen Geplaatst: 4 juli 2003 Is het zo'n vervelend taaltje dan, dat C++? ;-) Quote Link naar reactie
anoniem Geplaatst: 23 juli 2003 Auteur Delen Geplaatst: 23 juli 2003 [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] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen