Mitä eroa on C-kielen% 2d ja% 02d välillä? Mikä on logiikka?


Vastaus 1:

Kun kirjoitat% 2d printf-käskyyn, se tuottaa tuloksen vähintään kahdella numerolla. Kuten

a = 235;
printf ("% 2d", a);

Se tuottaa 23.

Koska printf-rakenne on

printf ("% wd", var)

Mutta jos käytät% 02d, se lisäisi nollan ennen lähtöä.

a = 34;
printf ( "% 02d", a);

Tämä tulostaa 034.

Löysin tämän kirjoittaessani ohjelmaa päivämäärän näyttämiseksi 2 numeroa. Kun käytin muotoa% 02d, olin yllättynyt tuloksesta.

Jos pidät vastauksesta, älä äänestä.


Vastaus 2:

% 2d c-kielellä lisää numeron tyhjään kohtaan. Numeron näytössä pitäisi olla vähemmän kuin 2 merkkiä:

int x = 5;
printf ( "% 2d", x);

lähtö on “5”, huomaa, että ennen 5 on tyhjä tila.

Jos yrität tehdä jotain tällaista:

int x = 454;
printf ( "% 2d", x);

lähtö on 454 ilman etäisyyksiä.

puhutaan nyt% 02d:

0 tarkoittaa kentän täyttämistä nollia käyttämällä ja 2 tarkoittaa, että kenttä on kahden merkin leveä, joten kaikille numeroille, joiden näytössä on vähemmän kuin 2 merkkiä, se täytetään nollalla.

int x = 3;
printf ( "% 02d", x);

lähtö on 03

jos yrität tehdä jotain:

int x = 345;
printf ( "% 02d", x);

lähtö on 345 eikä edeltäviä nollia lisätä.

Nyt lasketaan kohtaan "% .6f":

Se tarkoittaa, että se tuottaa vain 6 numeroa desimaalin jälkeen (pyöristettävä 6 paikkaan):

kellua x = 345,24678389;
printf ( "%. 6f", x);

lähtö on 345,246784, koska 7. asemassa luku on suurempi kuin 5, joten se pyöristää 3 - 4.

Toivottavasti tämä auttaa !

onnellinen koodaus :)


Vastaus 3:

% 2d c-kielellä lisää numeron tyhjään kohtaan. Numeron näytössä pitäisi olla vähemmän kuin 2 merkkiä:

int x = 5;
printf ( "% 2d", x);

lähtö on “5”, huomaa, että ennen 5 on tyhjä tila.

Jos yrität tehdä jotain tällaista:

int x = 454;
printf ( "% 2d", x);

lähtö on 454 ilman etäisyyksiä.

puhutaan nyt% 02d:

0 tarkoittaa kentän täyttämistä nollia käyttämällä ja 2 tarkoittaa, että kenttä on kahden merkin leveä, joten kaikille numeroille, joiden näytössä on vähemmän kuin 2 merkkiä, se täytetään nollalla.

int x = 3;
printf ( "% 02d", x);

lähtö on 03

jos yrität tehdä jotain:

int x = 345;
printf ( "% 02d", x);

lähtö on 345 eikä edeltäviä nollia lisätä.

Nyt lasketaan kohtaan "% .6f":

Se tarkoittaa, että se tuottaa vain 6 numeroa desimaalin jälkeen (pyöristettävä 6 paikkaan):

kellua x = 345,24678389;
printf ( "%. 6f", x);

lähtö on 345,246784, koska 7. asemassa luku on suurempi kuin 5, joten se pyöristää 3 - 4.

Toivottavasti tämä auttaa !

onnellinen koodaus :)


Vastaus 4:

% 2d c-kielellä lisää numeron tyhjään kohtaan. Numeron näytössä pitäisi olla vähemmän kuin 2 merkkiä:

int x = 5;
printf ( "% 2d", x);

lähtö on “5”, huomaa, että ennen 5 on tyhjä tila.

Jos yrität tehdä jotain tällaista:

int x = 454;
printf ( "% 2d", x);

lähtö on 454 ilman etäisyyksiä.

puhutaan nyt% 02d:

0 tarkoittaa kentän täyttämistä nollia käyttämällä ja 2 tarkoittaa, että kenttä on kahden merkin leveä, joten kaikille numeroille, joiden näytössä on vähemmän kuin 2 merkkiä, se täytetään nollalla.

int x = 3;
printf ( "% 02d", x);

lähtö on 03

jos yrität tehdä jotain:

int x = 345;
printf ( "% 02d", x);

lähtö on 345 eikä edeltäviä nollia lisätä.

Nyt lasketaan kohtaan "% .6f":

Se tarkoittaa, että se tuottaa vain 6 numeroa desimaalin jälkeen (pyöristettävä 6 paikkaan):

kellua x = 345,24678389;
printf ( "%. 6f", x);

lähtö on 345,246784, koska 7. asemassa luku on suurempi kuin 5, joten se pyöristää 3 - 4.

Toivottavasti tämä auttaa !

onnellinen koodaus :)