[C++, konsola] Funkcja setw
Ostatnio zmodyfikowano 2013-05-19 17:24
kejkun Temat założony przez niniejszego użytkownika |
[C++, konsola] Funkcja setw » 2013-05-19 15:33:21 Witam, chodzi mi o 'setw' mamy np. kod #include <iostream> #include <iomanip> #include <cstdlib>
using namespace std;
int main() { for( int i = 1; i <= 20; i++ ) cout << setw( 5 ) << rand() << endl; return 0; }
rownie dobrze mozna usunac " setw(5) " i program zadziała identycznie, wiec czemu to słuzy ? Z waszej strony wyczytałem, że działa tak samo jak " witdh " , czyli "określa na ilu polach wypisać liczbą, " no to jak mam tu rozumieć te " pola " ? skoro wyskakuje liczba powiedzmy 8 - cyfrowa, a ustawiłem pole na "5" to nie bedzie ta liczba skrocona do "5" cyfr , lecz tak czy siak wyswietli sie cała, ocb ??? albo np. mamy kod: #include<iostream> #include<iomanip>
using namespace std; int main() { int m = 437554; cout << setw( 3 ) << m << setw( 6 ) << m << setw( 11 ) << m << endl; return 0; }
teraz co sie dzieje w przypadku gdy ilosc cyfr liczby > setw a zaraz za nią podobna sytuacja , lecz rowne ilosci. i 3 przypadek setw 11 > ilosci cyfr . wyjscie to: 437554437554 xxxxx 437554
gdzie x -> to " x" spacji czemu tak sie zachowal program ? ? |
|
pekfos |
» 2013-05-19 16:23:55 |
|
kejkun Temat założony przez niniejszego użytkownika |
» 2013-05-19 17:15:06 no, ale dlaczego skoro mamy np. 8 cyfrowa liczbe, i mamy setw(3) to i tak wyswietli sie nam cała liczba ? skoro ona nie zmiesci sie w " 3 " polach ? hm ? nie widze sensu jakiegos, to rownie dobrze mozna było po prostu normalnie napisac te liczbe ;x . |
|
pekfos |
» 2013-05-19 17:24:35 no, ale dlaczego skoro mamy np. 8 cyfrowa liczbe, i mamy setw(3) to i tak wyswietli sie nam cała liczba ? |
Bo to nie do tego służy. setw() określa minimalną ilość miejsca do użycia, a nie maksymalną. |
|
« 1 » |