Odpowiednik metody ToString() z C# w C++

0

Chce przepisac kod z C# na c++, ale mam pewnie problem mianowicie nie wiem jak to ugryźć

tekst=liczba.ToString();

i chce ten kawalek kodu zamienic na c++, proszę o pomoc.

3
tekst = std::to_string(liczba);
0

wyskakuje mi błąd wlasnie w miejscu

tekst = to_string(liczba);

Może wkleje cały kod :

#include <iostream>
#include <cstdlib>
#include <sstream>
#include<string>
using namespace std;

int main()
{
   int n;
   int ile=0;
   cin>>n;
   string tekst;
   int odwrotnie = 0;
   int liczba=atoi(tekst.c_str());
   string tekst2 = "";
   for(int i=0;i<n;i++)
   {
       cin>>tekst;
       do{
        for(int j=tekst.length()-1;j>=0;j--)
        {
            tekst2+=tekst[j];
        }
        odwrotnie=atoi(tekst2.c_str());
        if(liczba==odwrotnie){
            break;
        }
        ile++;
        liczba+=odwrotnie;
        tekst = to_string(liczba);
       }while(true);
       cout<<liczba<<" "<<ile;
   }
    return 0;
}

0

Powiedz proszę co to za błąd wyskakuje, nie każdemu chce się zgadywać.

0

to_string was not declared in this scope

2

Pewnie kompilujesz jakimś antycznym kompilatorem bez C++11. Musisz włączyć taki tryb (-std=c++11 lub wyżej na gcc/clangu), lub przesiąść się na nowszy kompilator.

0

Skompiluj z flagą c++11. std::to_string jest w C++ od tego standardu.

0
robertos18 napisał(a):
   string tekst;
   int odwrotnie = 0;
   int liczba=atoi(tekst.c_str());

Jak myślisz, jaka jest wartość zmiennej liczba?

PS. Może Ci się przydać

0

0 ?

1

To dlaczego nie napiszesz po prostu int liczba = 0;?
Poza tym polecam używać stoi zamiast atoi. Tutaj jest to wytłumaczone dlaczego

0

Natomiast jeśli nie istnieje taka funkcja, to być może używasz MinGW, które posiadało takiego buga, mimo flagi -std=c++11:

https://stackoverflow.com/questions/12975341/to-string-is-not-a-member-of-std-says-g-mingw

Z tym że nowsze wersje MinGW już takich problemów nie mają.

1 użytkowników online, w tym zalogowanych: 0, gości: 1