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

problem z funkcją to_string

VPS Starter Arubacloud
0 głosów
1,312 wizyt
pytanie zadane 18 kwietnia 2016 w C i C++ przez ASido Użytkownik (510 p.)
edycja 18 kwietnia 2016 przez ASido

Cześć,

rozwiązuje właśnie jedno z zadań na SPOJ ("dwie cyfry silni" - http://pl.spoj.com/problems/FCTRL3/). Wymyślając rozwiązanie natrafiłem na pewien problem - nie działa mi funkcja to_string. Wiem, że są też inne sposoby zamiany liczb na stringi, ale ten jest wygodny i nie chciałbym z niego rezygnować. Ma ktoś pomysł co mogło pójść nie tak? Poniżej wklejam kod:

#include <iostream>
#include <string>

using namespace std;

 long int silnia (long int n)
{
    if(n==0) return 1;
    else return n*silnia(n-1);
}
int main()
{
    int p; //liczba przypadkow

    while (p--)
    {
    int d; //dlugosc lancucha
    long int n; //wartosc do silni
    cin>>n;
    string str = to_string(silnia(n));
    d = str.lenght();
    cout<<str[d-2]<<" "<<str[d-1];

    }
    return 0;
}

 

4 odpowiedzi

+2 głosów
odpowiedź 18 kwietnia 2016 przez niezalogowany
wybrane 19 kwietnia 2016 przez ASido
 
Najlepsza
Masz włączony w kompilatorze C++11? W gcc służyła do tego flaga -std=c++11
+2 głosów
odpowiedź 18 kwietnia 2016 przez Sedi Stary wyjadacz (10,200 p.)
d = str.lendth();

Masz literówkę w powyższym tekście. Zobacz jak się pisze po angielsku słówko długość :)

komentarz 18 kwietnia 2016 przez ASido Użytkownik (510 p.)
Poprawione, dzięki ;) Niestety nie rozwiązuje to problemu z to_string.
komentarz 18 kwietnia 2016 przez Sedi Stary wyjadacz (10,200 p.)
Występuje błąd to string was not declared in this scope ?
komentarz 18 kwietnia 2016 przez ASido Użytkownik (510 p.)
Tak
+1 głos
odpowiedź 18 kwietnia 2016 przez Harsay Pasjonat (23,640 p.)
Kompilator dołączony razem z Code::Blocks ma buga, który nie pozwala na wykorzystanie funkcji to_string().
Musisz pobrać najnowszy kompilator i go podmienić z obecnym.

Osobiście w tym momencie poleciłbym przesiadkę na Visual Studio :)
komentarz 18 kwietnia 2016 przez Patryk Krajewski Nałogowiec (26,170 p.)
Nie ma buga. Po prostu w opcjach nie ma włączonej flagi. Tak jak badbullpl napisał.
–1 głos
odpowiedź 18 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)

Nie wiem jak jest z toString w c++ ale w Javie jest to funkcja większości klas więc skorzystałbyś z tego tak:

String str = silnia(n).toString();

Spróbuj coś w tym stylu.

komentarz 18 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)

A jeśli nie zadziała i nie znajdziesz innego sposobu to najprościej w świecie:

String str = silnia(d) + "";

 

1
komentarz 18 kwietnia 2016 przez draghan VIP (106,230 p.)
W C++ to nie jest funkcja większości klas... Ba - nawet nie jest to funkcja żadnej klasy. A napisów nie można konkatenować z liczbami.

Podobne pytania

0 głosów
1 odpowiedź 340 wizyt
pytanie zadane 6 sierpnia 2021 w C i C++ przez Kamirru9 Początkujący (300 p.)
0 głosów
1 odpowiedź 432 wizyt
pytanie zadane 25 grudnia 2017 w C i C++ przez qsoll Początkujący (440 p.)
0 głosów
0 odpowiedzi 223 wizyt
pytanie zadane 14 listopada 2019 w C i C++ przez maselo93 Użytkownik (880 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...