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

Wczytywanie liczb z pliku i zapis ich do innego w postaci słownej.

Ostatnio zmodyfikowano 2014-05-25 21:40
Autor Wiadomość
staho
Temat założony przez niniejszego użytkownika
Wczytywanie liczb z pliku i zapis ich do innego w postaci słownej.
» 2014-05-18 19:36:41
Witam. Mam zadanie domowe w którym muszę wczytać do pliku liczby z zakresu 0-999 i przedstawić je w formie jedności zapisanych słownie i oddzielanych, niech będzie "-")
Np. 781 => siedem-osiem-jeden
Jeden plik ma być plikiem wejściowym gdzie będą te liczby zapisane jedna pod drugą, a drugi ma być analogicznie tylko z liczbami zapisanymi "słownie".
Proszę nakierujcie mnie jak to zrobić :)
P-110330
Moorfox
» 2014-05-18 19:55:31
C/C++
int main()
{
    int liczba;
    float temp;
    int temp2 = 1;
    float temp3;
    FILE * file = fopen( "zczytywanie.txt", "r" );
    FILE * file2 = fopen( "zapis.txt", "w+" );
   
    fscanf( file, "%i", & liczba );
    while( temp2 ) // przy pierwszym obrocie temp2 = 1 przy drugim temp2 = 23 przy trzecim temp2 = 2 przy czwartym temp2 = 0
    {
        temp = liczba / 10; // dla przykladu liczba = 236 wiec temp = 23,6
        temp2 = temp; // jesli temp = 23,6 to temp2 = 23 bo zostaje w incie obciete to co po przecinku
        temp3 =( temp - temp2 ) * 10 // skoro temp = 23,6 i temp2 = 23 to ich roznica 23,6-23 = 0,6 jeszcze do tego *10 to temp3 = 6 jest // to ostatnia cyfra wartosci liczba na poczatku obrotu petli
        liczba = temp;
    }
   
}

Zaczalbym od czegos takiego
Kod sobie sam sformatuj mozna wyrzucic pare zmiennych, robilem to na szybko ;x
I chyba lepiej zrobic petle do while
P-110332
Jacob99
» 2014-05-18 19:56:55
Wpisać liczby do pliku to chyba umiesz.
Ale jakbyś nie kojarzył to strumień fstream.

Co do wpisywania tego słownie to może coś takiego:
C/C++
ofstream strum_wyj( "plik.txt" );

int liczba;

// tutaj wpisujesz jakoś liczbę

if( liczba == 0 )
     strum_wyj << "-zero";
else if( liczba == 1 )
     strum_wyj << "-jeden";
else if( liczba == 2 )
     strum_wyj << "-dwa";
else if( liczba == 3 )
     strum_wyj << "-trzy";
else if( liczba == 4 )
     strum_wyj << "-cztery";
else if( liczba == 5 )
     strum_wyj << "-piec";
else if( liczba == 6 )
     strum_wyj << "-szesc";
else if( liczba == 7 )
     strum_wyj << "-siedem";
else if( liczba == 8 )
     strum_wyj << "-osiem";
else if( liczba == 9 )
     strum_wyj << "-dziewiec";
else
     return( EXIT_FAILURE );

@Moorfox
Po co bawić się z WinAPI?
Łatwiej jest to zrobić "normalnie", czyli w czystym C++.
P-110333
Moorfox
» 2014-05-18 20:03:45
Jakie WinAPI 0.o ?? co to ma z tym wspólnego
P-110334
Jacob99
» 2014-05-18 20:05:39
A czym jest to?
FILE * file = fopen( "zczytywanie.txt", "r" );
P-110335
Moorfox
» 2014-05-18 20:09:55
wskaznik na obiekt typu FILE ktoremu przypisywany jest pewien obszar pamieci zwracany przez funkcje fopen z biblioteki standardowej cstdio ?
P-110337
Jacob99
» 2014-05-18 20:17:55
A to sorry :).
Nie korzystam z cstdio, więc raczej średnio znam obiekty tej biblioteki.
A zapis podobny jak w WinAPI :).
P-110338
Moorfox
» 2014-05-18 20:37:41
Popracuj trochę nad teorią "średnio znam obiekty tej biblioteki." prawdopodobnie nawet nie odróżniasz obiektu od klasy.
I może w twoim kodzie, który nie ma nawet racji działania(chyba, że umyślnie go nie skończyłeś), warto użyć switch'a ? Tylko taka uwaga bo, właśnie dla takich momentów switch istnieje
P-110339
« 1 » 2
  Strona 1 z 2 Następna strona