czytanie liczb z przecinkami zamiast kropek

0

Witam, napisałem swój pierwszy program w C++ - przelicznik z kilometrów na mniejsze jednostki.
Mam problem gdyż nie czyta on liczb z przecinkami, mam nadzieję że ktoś mi pomoże.

#include <iostream>


int main()

{
	system ("chcp 1250"); 
	for( ; ; ){

	int    kilometry ;

	float  metry ;
	float  przelicznik1 = 1000 ;
	float  decymetry ;
    float  przelicznik2 = 10000 ;
	float  centymetry ;
	float  przelicznik3 = 100000 ;


	std::cout << "Podaj wysokość w kilometrach :" ;
	std::cin >> kilometry ;

    
	metry = kilometry * przelicznik1;
    decymetry = kilometry * przelicznik2;
	centymetry = kilometry * przelicznik3;

	std::cout << "\n" ;

	
	std::cout << kilometry << " kilometrów - to jest :\n"
		      << metry << " metrów\n" 
	          << decymetry << " decymetrów\n" 
			  << centymetry << " centymetrów\n" ;
	 
   
	}



}

PS. Jeżeli jest sposób aby były polskie znaki inny niż komenda system ("chcp 1250") będę wdzięczny jak ktoś takowy poda. :)

0

Separatorem dla liczb zmiennoprzecinkowych jest standardowo kropka, może dlatego? :P

0

Niestety nie działa ani kropka, ani przecinek. Po wpisaniu jakiejkolwiek liczby wymiernej program powtarza cały kod w nieskończoność. We wcześniejszej wersji gdy nie było zapętlania po wpisaniu takiej liczby nie czytało cyfr po kropce/przecinku.

0
#include <iostream>

int main()
{
  system ("chcp 1250");
  const int  przelicznik1 = 1000 ;
  const int  przelicznik2 = 10000 ;
  const int  przelicznik3 = 100000 ;
  float kilometry;
  do
    {
      float metry,decymetry,centymetry;
      std::cout << "Podaj wysokość w kilometrach : (0 aby zakonczyc program)" ;
      std::cin >> kilometry ;

      metry = kilometry * przelicznik1;
      decymetry = kilometry * przelicznik2;
      centymetry = kilometry * przelicznik3;
      std::cout << "\n" ;
      std::cout << kilometry << " kilometrów - to jest :\n"
      << metry << " metrów\n"
      << decymetry << " decymetrów\n"
      << centymetry << " centymetrów"<<std::endl;
    }while (kilometry);
  return EXIT_SUCCESS;
}

0

Ok, działa jak powinno.
Wielkie dzięki :)

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