Avatar billede jara06 Nybegynder
01. april 2004 - 19:39 Der er 5 kommentarer og
1 løsning

løbsk while v validering af en int

Hej eksperter!
Jeg er forholdsvis ny i c++, men skal bruge det i forbindelse med skole. Jeg har fanget en ver. af VS 2003 (7.1) hvor jeg afprøver simpel c++.
Nu vil jeg gerne tjekke et user input er en valid int og spørge igen hvis det ikke er.. Men det virker ikke.
Plz hjælp!!

int main()
{
    int temp_w_id;

    while (!(cin >> temp_w_id))
    {
            cin.clear();
            cout << "this is not a number: \"" << temp_w_id << "\". try again: " << endl;
    }

    getch();
    return 0;
}

PS: Gode guides/hints til netop emnet ville være værdsat :)
Avatar billede al_dair Nybegynder
01. april 2004 - 19:53 #1
Har lavet en lignende funktion for et stykke tid siden ..

int tjek_input(char input)
{
           
    scanf( "%c", &input );
    if( isdigit(input))
    {
    return 1;
    }
   
    else return 0;
}

&#9658; Bemærk funktionen isdigit()
Avatar billede al_dair Nybegynder
01. april 2004 - 19:58 #2
isdigit() returnere enten 0 eller 1
derfor kan du bruge den direkte ..
ala
if(isdigit())==1
{
bla bla
}


Jeg tror ikke at din kode tjekker om input er int..
men nærmere om der bliver indtastet noget..
Avatar billede bertelbrander Novice
01. april 2004 - 20:07 #3
#include <sstream>
#include <string>
#include <iostream>

using namespace std;

int main()
{
  int temp_w_id;
  string s;
  bool done;
  do
  {
    getline(cin, s);
    stringstream ss(s);

    if(!(ss >> temp_w_id))
    {
      cout << "this is not a number: \"" << s << "\". try again: " << endl;
      done = false;
    }
    else
      done = true;
  }
  while(!done);
  cout << "You managed to enter: " << temp_w_id << endl;

  return 0;
}
Avatar billede jara06 Nybegynder
16. maj 2004 - 22:15 #4
Begge var lige gode... Hvis I lige smider et svar .. :)
Avatar billede bertelbrander Novice
16. maj 2004 - 23:10 #5
Jeg forsøger at undgå point.
Avatar billede jara06 Nybegynder
07. september 2004 - 00:14 #6
Jeg tager point selv så. Kom med reply hvis I vil have dem :)
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