Mam wydaje mi sie prosty problem. Chodzi mi o to ze mam wskaznik do tablicy znakow char i to co tam jest chce wrzucic do stringa. Wiem z na odwrot mozna zrobic string.c_str(), ale jak zrobic char na string... znak po znaku?? Nie ma czegos konkretnego??
String str = wskaznik_do_lancucha;
No tak faktycznie...sorry... nie bylo pytania....
No takale skoro juz to wiem to powiedz mi jeszcze jak zrobic cos takiego, kiedy wiem ze w pamieci jest jakis ciag znakowy, a adres jest przechowywany w:
const unsigned short *atryb_name
Czyli atryb_name = adres w pamieci
a *atryb_name zwraca kod ASCII znajdujacego sie pod tym adresem znaku
Jak to z tego miejsca zczytac do stringa??
Kiedy ten adres proboje wrzucic do stringa to w kompilacji mam error :[
cannot convert from 'const unsigned short *' to 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
Rzutowanie moze jakies zrobic??
Rzutuj na char*
NIe wiem czy dokładnie o coś takiego ci chodzi:
char *c = "hello";
const unsigned short *atryb_name = (const unsigned short*)c;
String str = (char*)atryb_name;
I nie próbuj robić żadnych sztuczek na wskaźnikach w stylu
atryb_name++
bo kompilator myśli że nadal używasz const unsigned short
i doda 2 zamiast 1.
Tak tak... wlasnie o cos takiego mi chodzi, niestety juz to probowalem i dostaje error:
error C2440: 'initializing' : cannot convert from 'char' to 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'
co jest dziwne... mi tez sie wydaje ze rzutowanie powinno dzialac... ale nie dziala :[
Jak przyjdzie ci cos inego do glwy to napisz... (a tak w ogóle to zgadzam sie Bill=Debil) ;)
Dziwna sprawa bo umnie (C++Builder 6 Pe) wszystko idzie gładko. Napisz na jakim kompilatorze pracujesz.
A ja na Visualu 6.0 :(. Ale spoko juz to zrobilem na piechote, zczytywanie znak po znaku do tablicy char (przesuwam wskaznik w pamieci po kolejnych elementach), potem wskaznik do tablicy idzie do stringa.... Troche przydlugie i kombinowane, ale dziala.
wiesz mozliwe ze miales problem z rzutowaniem z pamięci bo z teego co pamietam o visualu to dla niego char (pojedynczy znak) ma w pamieci dwa bajty a nie jeden jak to jest np w builderze...
Mejbi ju hew rajt.... :]
wiesz mozliwe ze miales problem z rzutowaniem z pamięci bo z teego co pamietam o visualu to dla niego char (pojedynczy znak) ma w pamieci dwa bajty a nie jeden jak to jest np w builderze...
Ciekawe co te mendy z ms knuly [???]
Po co ten drugi bajt?