Strona 1 z 1

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 19:52
autor: wdsk90
Jak wyrównać tekst do prawej w C++? To znaczy, mam program, który wczytuje trzy liczby i drukuje je na ekranie. Dla liczb 2, 123, 1 zamiast standardowego

Kod: Zaznacz cały

2
123
1
chciałbym otrzymać

Kod: Zaznacz cały

  2
123
  1
Jak to zrobić?

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 20:12
autor: wawek91


Mam nadzieje, że się przyda.

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 20:16
autor: wdsk90
Też umiem szukać w googlach, ale nie o to mi chodziło.

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 20:19
autor: Sokół
... de110.html
słabo szukasz

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 20:28
autor: wdsk90
Może wyjaśnię: moja wiedza o C++ jest bardzo mała, dopiero zaczynam się uczyć i chcę to zrobić w możliwie najprostszy sposób, bez używania funkcji, flag i innych bardziej zaawansowanych rzeczy. To zadanie znajduje się w książce po rozdziale, w którym omówione są tylko takie rzeczy jak podstawowe typy i konwersje między nimi (bezpieczne i niebezpieczne), obiekty, itp.

Wyrównanie liczb do prawej w C++

: 2 cze 2010, o 21:56
autor: Sokół
Z jakiej książki korzystasz? Bez użycia manipulatora czy flag można chyba to zrobić tylko w sposób algorytmiczny. Przyjmujesz jaką maksymalnie liczba może mieć długość (ilość znaków), sprawdzasz ile znaków ma podana liczba, i drukujesz odpowiednią ilość spacji przed tą liczbą. Do zbadania ile liczba ma znaków posłuży zaokrąglony w górę logarytm dziesiętny (biblioteka cmath). Do wydrukowania takiej ilości spacji przyda się pętla for albo while.

żeby przedstawić ideę (nie kompilowałem, może nie być do końca poprawnie):

Kod: Zaznacz cały

cin >> liczba;for(int i=0; i< maks_znakow-ceil((log10(liczba)) ); i++){cout << " ";}cout << liczba
dla liczb ujemnych użyj wartości bezwzględnej et caetera.

Wyrównanie liczb do prawej w C++

: 3 cze 2010, o 13:59
autor: wdsk90
"Programowanie. Teoria i praktyka z wykorzystaniem C++." Bjarne Stroustrupa. Już dałem sobie z tym radę.

Wyrównanie liczb do prawej w C++

: 3 cze 2010, o 14:02
autor: Sokół
Znalazłeś inny sposób?

Wyrównanie liczb do prawej w C++

: 3 cze 2010, o 14:06
autor: wdsk90
Nie, też zrobiłem to z pętlami i wstawieniem spacji, z tym, że napierw sprawdzałem, która liczba jest najdłuższa (za pomocą dzielenia przez 10) i przed krótszymi wstawiałem spacje.

Wyrównanie liczb do prawej w C++

: 6 cze 2010, o 01:46
autor: spajder
A modyfikatory takie fajne są i łatwe:

Kod: Zaznacz cały

#include <iomanip>
...
cout << setw(10) << right << 1234 << "
";
cout << setw(10) << right << 98 << "
";