Skocz do zawartości
Wujek_Dobra_Rada

Pobieranie Z Klawiatury Float’a Do Obliczeń ?

Rekomendowane odpowiedzi

Mam oto taki problem:

 

Muszę pobrać z klawiatury flota, który następnie jest wstawiany do wzoru. Wiesz może co zrobić, aby ustrzec się przed wprowadzeniem przez użytkownika ciągu liter zamiast cyfr, bo jak wprowadzi się te litery i wstawi do wzoru to się wali.

 

Oto uproszczony schemat o co mi chodzi, bo tak naprawdę programik jest dużo bardziej rozbudowany:

 

Main( )

{

float wynik, pobrana;

cout<<"podaj liczbe\n";

cin>>pobrana;

wynik=pobrana*1.000002232;

cout<<wynik<<endl;

}

 

Trzeba tu dodać jakąś pętle która w razie gdy podamy jako „pobrana” litere, bądź ciąg znaków inny niż cyfry, nakaże użytkownikowi ponowne wprowadzenie liczby.

 

Wie ktoś jak coś takiego zrobić? Jeśli tak będę wdzięczny za pomoc.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jest taka funkcja isdigit, ale nie pamiętam czy działa na floatach.

@edit Jest jeszcze takie coś: http://www.mkssoftware.com/docs/man3/isalpha.3.asp

Dzięki za zainteresowanie. Tylko że jest mały problem, ja jestem bardzo słaby w programowaniu i nie bardzo wiem jak skorzystać z twojej porady.

 

Jest może ktoś na forum , kto wie jak to dokładnie trzeba zrobić ??

 

Z góry dzięki.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Muszę pobrać z klawiatury flota, który następnie jest wstawiany do wzoru. Wiesz może co zrobić, aby ustrzec się przed wprowadzeniem przez użytkownika ciągu liter zamiast cyfr, bo jak wprowadzi się te litery i wstawi do wzoru to się wali.

(...)

Trzeba tu dodać jakąś pętle która w razie gdy podamy jako „pobrana” litere, bądź ciąg znaków inny niż cyfry, nakaże użytkownikowi ponowne wprowadzenie liczby.

Ja bym pyknął tak:

 

#include <iostream.h>#include <conio.h>int main(int argc, char* argv[]){		float wynik,pobrana;		int info;		do		{				cout<<"\n Podaj liczbe typu float: ";				info=scanf("%f",&pobrana);				fflush(stdin);		}		while(info==0);		wynik=pobrana*1.000002232;		cout<<"\n\n "<<wynik<<endl;		getch();		return 0;}
Funkcja scanf zwraca wartość 0 (fałsz) jeśli coś nietenteges :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...