Advertisement
MeehoweCK

Untitled

Jul 20th, 2018
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. bool konwertuj(string tekst, double& liczba)
  8. {
  9.     int pozycja = -1;
  10.     bool flaga=0;
  11.     unsigned rozmiar = tekst.size();
  12.     //cout << tekst.size() <<endl;
  13.     for (unsigned i=0; i<rozmiar; i++)
  14.     {
  15.         if(tekst[i]=='.')
  16.         {
  17.             if(flaga)
  18.                 return false;
  19.             flaga = true;
  20.             pozycja = i;
  21.         }
  22.     }
  23.  
  24.     double wynik = 0;
  25.  
  26.     if(pozycja == -1)
  27.     {
  28.         for(unsigned i = 0; i < rozmiar; ++i)
  29.             wynik += (static_cast<int>(tekst[i]) - 48) * pow(10, rozmiar - 1 - i);
  30.     }
  31.  
  32.     else
  33.     {
  34.         for(int i = 0; i < rozmiar; ++i)
  35.         {
  36.             if(i == pozycja)
  37.                 continue;
  38.             if(pozycja > i)     // przed separatorem
  39.                 wynik += (static_cast<int>(tekst[i]) - 48) * pow(10, pozycja - i - 1);
  40.             else                // za separatorem
  41.                 wynik += (static_cast<int>(tekst[i]) - 48) * pow(10, pozycja - i);
  42.         }
  43.     }
  44.  
  45.     liczba = wynik;
  46.     return true;
  47. }
  48.  
  49. int main()
  50. {
  51.     ifstream plik;              // tworzony uchwyt do pliku z opcj¹ odczytu (ifstream jak cin)
  52.     plik.open("plik.txt");      // otwarcie pliku o podanym adresie (nazwie)
  53.     if(plik.good())             // sprawdzenie czy plik zosta³ poprawnie otwarty
  54.         cout << "Udalo sie poprawnie otworzyc plik" << endl;
  55.     else
  56.     {
  57.         cout << "Niestety pliku nie udalo sie otworzyc, nastapi zamkniecie programu" << endl;
  58.         return 0;               // alternatywne wyjœcie z programu
  59.     }
  60.  
  61.     string tekst;
  62.     double liczba;
  63.     plik >> tekst;              // pobranie zmiennej z pliku
  64.  
  65.     if(konwertuj(tekst, liczba))
  66.         cout << liczba << endl;
  67.  
  68.     plik.close();               // zamkniêcie otwartego pliku
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement