Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, konsola] Funkcja setw

Ostatnio zmodyfikowano 2013-05-19 17:24
Autor Wiadomość
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

C/C++
#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:
C/C++
#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:
C/C++
437554437554 xxxxx 437554
gdzie x -> to " x" spacji
czemu tak sie zachowal program ? ?
P-83296
pekfos
» 2013-05-19 16:23:55
P-83300
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 .
P-83314
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ą.
P-83317
« 1 »
  Strona 1 z 1