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