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.
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.
tekst = std::to_string(liczba);
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;
}
Powiedz proszę co to za błąd wyskakuje, nie każdemu chce się zgadywać.
to_string was not declared in this scope
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.
Skompiluj z flagą c++11. std::to_string
jest w C++ od tego standardu.
robertos18 napisał(a):
string tekst; int odwrotnie = 0; int liczba=atoi(tekst.c_str());
Jak myślisz, jaka jest wartość zmiennej liczba
?
0 ?
To dlaczego nie napiszesz po prostu int liczba = 0;
?
Poza tym polecam używać stoi
zamiast atoi
. Tutaj jest to wytłumaczone dlaczego
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ą.