c++: long to const char*

Yiannis Papadopoulos giannis.papadopoulos at gmail.com
Thu Sep 27 09:33:58 EEST 2012


Theodore Lytras wrote:
> Στις Πεμ 27 Σεπτ 2012, ο/η Yiannis Papadopoulos έγραψε:
>> Theodore Lytras wrote:
>>> Καλησπέρα,
>>>
>>> ποιός είναι ο σωστός τρόπος να μετατρέψει κανείς ένα long (4 bytes) σε
>>> ένα const char * ??
>>>
>>> Ευχαριστώ,
>>> Θοδωρής
>> Κάνε το σε char*:
>>
>> #include <iostream>
>> #include <cstring>
>>
>> int main()
>> {
>>     long l = 4242;
>>     char s[sizeof(l)];
>>     std::memcpy(s, &l, sizeof(l));
>>     for (std::size_t i=0; i<sizeof(l); ++i)
>>       std::cout << s[i] << ' ';
>>     std::cout << std::endl;
>>     return 0;
>> }
> Και αν δεν θέλω να μπει στην εξίσωση η STL, καθ'όσον χρησιμοποιώ Qt ??
> (Άρα δεν παίζει memcpy, και δεν έχω μπορέσει να βρώ κάτι αντίστοιχο σε Qt...)
>
> Θοδωρής
>
Και φυσικά απάντησα σε λάθος ερώτηση: άμα θέλεις να κάνεις τον long σε null 
terminated C string τότε η καλύτερη λύση είναι η snprintf() (είναι στην C99 και 
κάπου είχα δει και stand-alone implementation): 
http://libslack.org/manpages/snprintf.3.html


More information about the Linux-greek-users mailing list