Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Zamiana tablicy intów na liczbę/ intów na chary

31 Maj 2013 16:04 1446 6
  • Poziom 12  
    Piszę program i w jednym z jego elementów potrzebuję zczytać z określonego miejsca w pliku tekstowym liczbę. Zczytuję ją jako inty funkcją file.get(), mam więc tablicę intów. Potrzebuję jednak mieć tą liczbę jako całość żeby później ją do czegoś wykorzystać. Problem dosyć prosty, nie wiem czemu ale siedzę już nad tym godzinę(fora też przeglądałam). Bardzo liczę na pomoc, próbowalam już kilku rozwiązań typu zamiana na chary i do stringa ale wszystko nie działa i nie wiem w czym tkwi problem. Będę wdzięczna za pomoc!

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Rozwiązanie typu: mnożenie poszczególnych cyfr przez potęgi dziesiątki chyba nie jest dobre, bo dopiero na koniec pętli znam liczbę cyfr czyli chyba musiałabym mieć dynamiczną tabliucę a wydaje mi się że można to zrobić jakoś prościej...

    EDIT-> OK, okazuję się ze najlepiej by było chtyyba przekonwertować to z tymi dziesiątkami, ale muszę mieć tablicę intów. Nie mam jej, bo nie mogę jej utworzyć nie znając wcześniej rozmiaru tablicy.... W C bym użyła realloca, jest coś takiego w C++?
  • Poziom 16  
    jolkajolka napisał:
    W C bym użyła realloca, jest coś takiego w C++?

    W C++ możesz używać tych samych funkcji co w C (czyli malloc, free itd). Ale możesz też użyc tych bardziej C++ czyli operatora new i delete.
    Alokacja tablicy wyglada wtedy tak:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    i dealokacja:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod
  • Poziom 12  
    Właśnie nie wiem jak mam użyć new, skoro muszę powiększać wielkość tablicy przy każdej wykonanej pętli(przed pętlą nie mam pojęcia ile razy się ona wykona). A coś takiego umożliwia akurat realloc, nie wiem jak to zrobić za pomocą new. Spróbowałam użyć realloca, ale wyskakują mi błędy z dostępem do pamięci i nie wiem co zrobiłam źle...

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 16  
    Pozatym da sie to zrobić znacznie prościej
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    I teraz num zawiera to co zapewne oczekujesz.

    Dodano po 1 [minuty]:

    jolkajolka napisał:
    Właśnie nie wiem jak mam użyć new, skoro muszę powiększać wielkość tablicy przy każdej wykonanej pętli

    Zacznij używać w takim przypadku std::vector
  • Poziom 12  
    num ma to czego potrzebuję? Szczerze mówiąc nie rozumiem tego prostego kodziku.. Wczytuje z określonego miejsca w pliku liczbę(np. 6cyfrową) dalej są literki w tym pliku, stąd w moim kodzie te ify itp. To to chyba trochę inaczej działa...

    Czyli podsumowując nie biorę danych z plików z określonego miejsca do końca, tylko kilka cyferek...
  • Poziom 16  
    num to jest zmienna, która będzie miała wartość, którą wcześniej recznie przeparsowywałeś. Przetestuj i zobacz.
  • Poziom 12  
    leoha napisał:
    num to jest zmienna, która będzie miała wartość, którą wcześniej recznie przeparsowywałeś. Przetestuj i zobacz.


    Ok, to zanim to zastosuję mam proste pytanie. Co robi
    Kod: cpp
    Zaloguj się, aby zobaczyć kod
    .

    Rozumiem że wczytuje znaki z pliku. Pojedynczo tak? I co zwraca?Inty czy chary Szukam w necie ale narazie nie znalazłam.