Jak wrócić do początku wiersza

Jak wrócić do początku wiersza
PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 45
0

Dzień dobry,
mam taki problem:
chce napisać program który zamienia liczbę dwójkową na dziesiętna.
Ograniczenie jest takie że mam do dyspozycji tylko cin.get() do wczytywania wprowadzonych znaków.
Napisałem kawałek, który odczytuje i zlicza ilość wprowadzonych znaków i tu utknąłem Ponieważ przechodzę do nowego wiersza i nie mogę ponownie odczytać wprowadzonego tekstu żeby wymnożyć w kolejnej pętli jedynki na wlasciwych miejscach

Czy mógłbym poprosić o podpowiedz ?
Pozdrawiam
Paweł

poniżej to co napisałem:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
char tmp;
unsigned ile=0;
cout << "Podaj liczbe w systemie dwojkowym" << endl;

       cin.get(tmp);
       
        while(tmp != '\n'){
         cout<< tmp;
         ++ile;
         tmp =cin.get();
       }
    cout << ile << endl;

getch();

return 0;
}

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

1.strlen
2.Wczytuj tekst raz, do zmiennej typu string.

PE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 45
0

Widzisz Patryk, problem w tym że mam użyć cin.get() w innym przypadku już bym sobie poradził :)

robcio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Opole
  • Postów: 533
0

zapisz to do std::vectorint> wszystkie liczby które wczytałeś cin.get. Później tylko odejmiesz kod '0' od zmiennej char i już będziesz miał to skonwertowane na inta

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Stringi! Wektory! O czym wy gadacie! http://ideone.com/mHg25A

Kopiuj
#include <iostream>
using namespace std;
 
int readbin(int p=0)
  {
   int digit=(cin.get()-'0');
   return ((0<=digit)&&(digit<=1))?readbin(p*2+digit):p;
  }
 
int readbin_alt()
  {
   int p=0,digit;
   while((0<=(digit=(cin.get()-'0')))&&(digit<=1)) p=p*2+digit;
   return p;
  }
 
int main()
  {
   while(true)
     {
      cout<<"Podaj liczbe w systemie dwojkowym: ";
      cout<<readbin()<<endl;
     }
  }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.