Szybkie podstawowe pytanko:)

Szybkie podstawowe pytanko:)
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
 #include <iostream>

using namespace std;

int main()
{

double l1, l2;

cout<<"Podaj pierwszą liczbę";
cin>>l1;			//wchodzi liczba i zapisuje na l1
cout<<"Podaj drugą liczbę";
cin>>l2;
cout<<"\n";

cout<<"Suma Twoich liczb wynosi "<<l1+l2<<endl;
cout<<"Różnica Twoich liczb wynosi "<<l1-l2<<endl;
cout<<"Iloczyn Twoich liczb wynosi "<<l1*l2<<endl;
cout<<"Iloraz Twoich liczb wynosi "<<l1/l2<<endl;

cin.get();
cin.get();
return 0;

}

Dlaczego pod koniec to "cin.get();" jest dwa razy? Nie może być raz? Może to ktoś logicznie mi wytłumaczyć? Byłbym wdzięczny ;)

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

W ogóle nie powinno go tam być - każde rozsądne IDE samo podtrzymuje konsolę.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

Ale odpowiadając na pytanie: dlatego że po wpisaniu wartości przez cin>> w buforze zostaje znak nowej linii (bo wciskasz enter) więc pierwsze cin.get() zje tego entera a dopiero drugie będzie czekać na wejście.

P2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
1

a kontynuując odpowiedź na pytanie:
żeby

Kopiuj
cin.get()

był tylko raz można zastosować coś takiego:

Kopiuj
 std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

chyba trzeba dołączyć

Kopiuj
#include <limits>
kaczus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Łódź
  • Postów: 1403
1

Tak jak inni juz napisali. Mieszanie 2 sposobów pobierania danych z bufora wymaga dodatkowych operacji: http://kaczus.ppa.pl/art/Skrzynia_porad,18.html#getline

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.