funkcje c++, zwracana wartość

0

mam napisać program w którym funkcja będzie wczytywała ze standardowego wejścia liczbę i zwracała wczytaną wartość funkcja ta ma zagwarantować że wprowadzony znak jest poprawny stworzyłem coś takiego

#include <iostream>
using namespace std;

int wczytajLiczbe(int a, bool b)
{

    cin>>a;
    b = cin.good();
    if(b = 0)
    {cout<<"podaj liczbe - nie zrobiles tego "<< endl;
        while( b != 1)
        {
            cin>>a;
            b = cin.good();
        }
    }
    return a;
}

int main()
{
    int a;
    cout << "Podaj liczbe: ";
    int liczba = wczytajLiczbe(a,b);
    cout << "Podales liczbe: " << liczba << endl;
    return 0;
}
 

lecz program nie działa poprawnie a nie wiedze w nim błędu, mógłby mi ktoś go wskazać

0
#include <iostream>
using namespace std;
 
int getIntValue(const char *msg,const char *error)
  {
   int value;
   while(true)
     {
      cout<<msg<<": ";
      bool ok=(cin>>value);
      cin.clear();
      while(cin.get()!='\n') {}
      if(ok) return value;
      cerr<<error<<endl;
     }
  }
 
int main()
  {
   int value=getIntValue("Podaj liczbe","To nie jest poprawna liczba");
   cout<<"Podales liczbe: "<<value<<endl;
   return 0;
  }
2
przemyslowiec napisał(a):

lecz program nie działa poprawnie a nie wiedze w nim błędu, mógłby mi ktoś go wskazać

Jak ma działać jak nawet się nie kompiluje? A gdzie jest błąd bardzo uprzejmie wskazuje kompilator

prog.cpp: In function 'int main()':
prog.cpp:24:34: error: 'b' was not declared in this scope
     int liczba = wczytajLiczbe(a,b);
                                  ^

1 użytkowników online, w tym zalogowanych: 0, gości: 1