• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konwersja przez itoa (c++)

Object Storage Arubacloud
0 głosów
1,537 wizyt
pytanie zadane 17 lipca 2018 w C i C++ przez Sic Dyskutant (8,510 p.)

Witam!

Proszę o podpowiedź dlaczego funkcja jest nie widoczna w programie.

Chcę utworzyć konwersje liczb dziesiętnych na dziesiętne, szesnastkowe i dwójkowe za pomocą funkcji itoa. Problem polega na tym, że kompilator nie widzi tej funckji. W dodatku kod utworzony na stronach jest niestety błędny.

#include <iostream>
#include <cstdio>
 
int main()
{
          int value, nr;
          char sign[15];
          std::cout << "Wybierz opcje\n1.Dziesiątkowy\n2.Binarny\n3.Szesnastkowy\n4.Zakończ\n";
          std::cin >> nr;
          while( nr == 4)
          {
                  switch(nr)
                  {
                          case 1:
                                  std::cout << "Podaj liczbę: "; std::cin >> value;
                                  std::cout << itoa(value, sign, 10);
                          break;
                          case 2:
                                  std::cout << "Podaj liczbę: "; std::cin >> value;
                                  std::cout << itoa(value, sign, 2);
                          break;
                          case 3:
                                  std::cout << "Podaj liczbę: "; std::cin >> value;
                                  std::cout << itoa(value, sign, 16);
                          break;
                  }//switch
          }//while
  
 }

 

4 odpowiedzi

0 głosów
odpowiedź 17 lipca 2018 przez VirtualMember Pasjonat (15,790 p.)

Co do błędu to prawdopodobnie brakuje Ci tego includa <cstdlib> (stdlib.h)

link: http://www.cplusplus.com/reference/cstdlib/itoa/

#include <cstdlib>

 

0 głosów
odpowiedź 17 lipca 2018 przez Ukasz Użytkownik (960 p.)
Spróbuj z biblioteką <cstdlib>
komentarz 17 lipca 2018 przez Sic Dyskutant (8,510 p.)

Problem jest w tym, że już tego próbowałem. Dalej nie działa:

kod.cpp:16:38: error: ‘itoa’ was not declared in this scope
     std::cout << itoa(value, sign, 10);

 

komentarz 17 lipca 2018 przez Ukasz Użytkownik (960 p.)
W jakim IDE pracujesz? Możliwe że to wina kompilatora. Nie wszystkie obsługują funkcję itoa, aczkolwiek pierwszy raz się z takim czymś spotykam...
komentarz 17 lipca 2018 przez Sic Dyskutant (8,510 p.)
g++5 na linuxie .
0 głosów
odpowiedź 17 lipca 2018 przez mokrowski Mędrzec (155,460 p.)

Już Ci odpowiedział @VirtualMember ale jak widzę sam nie doczytał źródła które podał. Gdzieś na środku tej strony masz:

This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

Mówiąc wprost. Lepszy jest inny sposób. Np ten: https://en.cppreference.com/w/cpp/string/basic_string/stol

 

komentarz 17 lipca 2018 przez Sic Dyskutant (8,510 p.)
Po co ta kłótnia skoro obaj nie wnieśliście więcej niż sam zdołałem zebrać informacji ?
komentarz 17 lipca 2018 przez VirtualMember Pasjonat (15,790 p.)

@mokrowski wywołał mnie jakobym powoływał się na źródła, których nawet nie czytam, co jest niesprawiedliwą bzdurą stąd naturalnie spytałem o podstawy takiego zachowania. Nie nazwałbym tego kłótnią, a raczej respektowaniem konsekwencji słów.

komentarz 18 lipca 2018 przez Sic Dyskutant (8,510 p.)
W takim razie wymiane nie zgodną z tematem prowadźcie prywatnie, ponieważ nie zamierzam wyszukiwać istotnych treści pomiędzy wyminą zdań, która donikąd nie prowadzi.
1
komentarz 18 lipca 2018 przez mokrowski Mędrzec (155,460 p.)

@Sic, ja skończyłem.

@VirtualMember, z całą pewnością itoa(...) nie jest powodem dla którego warto tracić czas na bezsensowne dyskusje. Przeczytaj uwagi ze zrozumieniem bez emocjonalnego zarzucania komukolwiek złej woli.

1
komentarz 18 lipca 2018 przez VirtualMember Pasjonat (15,790 p.)
Cały czas chłodno patrzę na dyskusję i w dalszym ciągu nie dostrzegam logicznego powodu Twojego osądu. Czy sprawa jest błaha czy wielce poważna, bzdur na czyiś temat wygadywać nie można. Na przyszłość po prostu waż słowa a nie będziesz miał takich problemów. Pozdrawiam.
0 głosów
odpowiedź 17 lipca 2018 przez VirtualMember Pasjonat (15,790 p.)

Jeśli chcesz jakieś ciekawe podejście do zamiany liczb to jeszcze polecę:

LINK

komentarz 17 lipca 2018 przez Sic Dyskutant (8,510 p.)
Dziękuję, jednak wole rozwiązać problem który dotyczy funkcji wbudowanej.

Podobne pytania

0 głosów
0 odpowiedzi 327 wizyt
pytanie zadane 12 maja 2020 w C i C++ przez Gurred Nowicjusz (240 p.)
0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 14 sierpnia 2016 w C i C++ przez thekibi27 Bywalec (2,110 p.)
0 głosów
1 odpowiedź 457 wizyt

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...