[C++] Umieszczenie w C-stringu liczby

Quentin
Użytkownik
Użytkownik
Posty: 177
Rejestracja: 16 lut 2009, o 18:29
Płeć: Mężczyzna
Podziękował: 50 razy

[C++] Umieszczenie w C-stringu liczby

Post autor: Quentin »

Witam!

Mam takie pytanie z ciekawości. Uczę się z książki Symfonia C++ i mam taką pętlę:

Kod: Zaznacz cały

for(int i = 0 ; i < 15 ; i++)
    {
        string nazwa_pliku("urzadzenie_");
        int liczba = i;

        liczba %= 100;
        char dziesiatki = '0' + (liczba / 10);

        liczba %= 10;
        char jednostki = '0' + (liczba / 1);

        nazwa_pliku += dziesiatki;
        nazwa_pliku += jednostki;
        nazwa_pliku += ".parametry";

        cout << "Dla i = " << i << " nazwa_pliku = " << nazwa_pliku << "\n";
    }
Służy ona do wstawiania liczb z zakresu 0-99 do C-stringu. W pierwszym przypadku jest dzielenie przez 10 i to wyrażenie ma wartość (w przypadku np. liczby 53) 5. Czyli cyfra dziesiątek. Natomiast z reszty dzielenia przez 10 otrzymujemy wartość równą 3.

Mam 2 pytania:

1.

Po co potrzebne są instrukcje:

Kod: Zaznacz cały

liczba %= 100;
lub

Kod: Zaznacz cały

liczba / 1
Jeżeli pierwszą usuniemy, a drugą zamienimy na:

Kod: Zaznacz cały

liczba
to program i tak będzie działał dobrze... Więc po co one tak naprawdę są ?
2.

W przypadku wartości 53 będzie wyglądało to tak (dziesiatki):

Kod: Zaznacz cały

char dziesiatki = '0' + (liczba / 10);

Kod: Zaznacz cały

char dziesiatki = '0' + (5.3);
Chcemy brać pod uwagę tylko całkowitą liczbę. Tutaj w operacjach na obiektach typu char zawsze kompilator dodaje tylko całkowite cyfry ? Tzn. bo tutaj np. "odetnie" tą część 0.3...


Z góry wielkie dzięki za pomoc :)
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[C++] Umieszczenie w C-stringu liczby

Post autor: matshadow »

1) Na nic
2) Dzielnie w C++ następuje całościowo, czyli zawsze jest brana cecha z wyniku dzielenia. Dlatego jest zmienna dziesiątki i jedności
Quentin
Użytkownik
Użytkownik
Posty: 177
Rejestracja: 16 lut 2009, o 18:29
Płeć: Mężczyzna
Podziękował: 50 razy

[C++] Umieszczenie w C-stringu liczby

Post autor: Quentin »

Aha, odnośnie tego dzielenia to nie wiedziałem - dzięki wielkie

Czyli dzielenie eee, jakby to powiedzieć: takie, w którym wynik uwzględnia ułamki, jest możliwe tylko na zmiennych zmiennoprzecinkowych ?
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[C++] Umieszczenie w C-stringu liczby

Post autor: matshadow »

tak
ODPOWIEDZ