Konwersje w C++


(Kazdej1) #1

Witam wszystkich!

Mam taki problem: jak zamienić typ int na const char? Jest mi to potrzebne do funkcji trybu graficznego outtextxy( int , int , const char );

Z góry dzięki za pomoc :wink:


(Fiołek) #2

Z int do char zachodzi niejawna konwersja, ale jeśli kompilator rzuca błąd(a nie powinien AFAIK, chyba, że ma traktować ostrzeżenia jako błędy) to:

int zmiennaInt = 123;

const char zmiennaConstChar = (const char)zmiennaInt; //lub static_cast(zmiennaInt)

([alex]) #3

Nie const char tylko const char * czyli wskaźnik na napis.

Do konwersji liczby na napis możesz użyć itoa(), sprintf() lub stringstream;


(Sawyer47) #4

Pytanie co chcesz zrobić - mieć napis zawierający wartość liczbową (jak interpretuje [alex]) czy może chcesz aby wskaźnik na napis miał daną wartość liczbową (jak interpretuje Fiołek)? Bo to dwie różne rzeczy.


([alex]) #5

nr47 , a nie poznajesz funkcji? Jak nie poznajesz to zorientujesz się po nazwie.


(Kozokslawomir) #6

A ja tam sądzę, że niejasne konwersje są złe... Najlepiej użyć jakiegoś castowania...

Aha, i moim zdaniem lepiej używać string'a, po const char* to raczej zła rzecz...

Hmm...

Proszę:

#include 

#include 

#include 

using namespace std;

int main()

{

        const int Variable=42;

        stringstream TemporaryStream; //Utworzenie strumienia danych

        TemporaryStream<
        //outtextxy(0, 0, TemporaryStream.str().c_str()); //Funkcja str() zwraca stringa, zaś c_str() const chara*

        return 0;

}

([alex]) #7

Ale nakombinowałeś !!

Nie prościej od razu:

outtextxy(1,1,(stringstream()

Jak ktoś nie potrafi używać to nawet zapałki są złą rzeczą, dla tego zabrania się dawać dzieciom.