Avatar billede hkhgubbi Nybegynder
14. april 2004 - 20:26 Der er 6 kommentarer og
1 løsning

Consol, Hjælp til do-while løkke

Hejsa...

Sprog = C++
Mit Problem er at jeg har lavet den do...while løkke, som bare går kold når den får bogstaver... min valg variabel er af typen "int"... Kan man ikke gøre så den ikke acceptere bogstaver???

do
{
    system("cls");
    std::cout << "TEKST, Valg mulighed 1-8";
    std::cin >> Valg;
    if (Valg>=1 && Valg<=8)
        break;
}
while (true);


Hilsen
HKH Gubbi
Avatar billede soreno Praktikant
14. april 2004 - 20:54 #1
Måske du kan finde inspiration i dette lettere omskrevne kode:

#include <iostream>
#include <ctype.h>
#include <conio.h>

using namespace std;

int main()
{
    char valg;
    do
    {
        //system("cls");
        cout << "TEKST, Valg mulighed [1-8] ";
        valg = getch();
        cout << endl << "\tdit valg var: " << valg << endl;
        if(valg < '1' || valg > '8')
            break;
    }while(true);
    return 0;
}
Avatar billede bertelbrander Novice
14. april 2004 - 20:59 #2
Eller:

#include <sstream>
#include <iostream>
#include <string>
#include <cstdlib>

int main()
{
  do
  {
    std::cout << "TEKST, Valg mulighed 1-8: ";
    std::cout.flush();
    std::string s;
    getline(std::cin, s);
    std::stringstream ss(s);
    int Valg;
    ss >> Valg;
    if(Valg >= 1 && Valg <=8)
    {
      std::cout << "You Got it right this time: " << Valg << std::endl;
      return 0;
    }
  }
  while (true);
}
Avatar billede bertelbrander Novice
14. april 2004 - 21:15 #3
Eller en anelse mere korrekt:

#include <sstream>
#include <iostream>
#include <string>
#include <cstdlib>

int main()
{
  do
  {
    std::cout << "TEKST, Valg mulighed 1-8: ";
    std::cout.flush();
    std::string s;
    getline(std::cin, s);
    std::stringstream ss(s);
    int Valg;
    if(ss >> Valg && Valg >= 1 && Valg <=8)
    {
      std::cout << "You Got it right this time: " << Valg << std::endl;
      return 0;
    }
  }
  while (true);
}
Avatar billede hkhgubbi Nybegynder
15. april 2004 - 12:32 #4
Tak.... Håber jeg kan hjælpe jer engang.....
Avatar billede bertelbrander Novice
15. april 2004 - 19:08 #5
Jeg er ret sikker på at soreno gerne vil have point...
Avatar billede soreno Praktikant
15. april 2004 - 19:10 #6
Det er jo ikke fordi points er alverden værd,
men alligevel bør de vel distribueres til dem
som har hjulpet spørger med at løse sit problem.
Avatar billede hkhgubbi Nybegynder
16. april 2004 - 12:10 #7
Ja, men det var jo lidt svært at give point til ham, han havde jo kun kommenteret...
men har givet dem til ham nu....

Endnu engang tak for hjælpen!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester