Skocz do zawartości

Zablokowane string do tablicy


Mentoss

Rekomendowane odpowiedzi

Potrzebuję przepisać string do tablicy, znak po znaku (ze zmiennej string haha do char bufor[]), razem z odstępami. Problem w tym, że string wczytywany jest z pliku, więc nie znam jego długości, co powoduje problemy podczas kompilacji.

 

Próbowałem kilku kombinacji:

std::string haha;
       std::getline( zrodlo, haha );
       char bufor[haha.length()]=haha;;           //variable-sized object 'bufor' may not be initialized

 

std::string haha;
       std::getline( zrodlo, haha );
       char bufor[]=haha;                             //initializer fails to determine size of 'bufor'

 

std::string haha;
       std::getline( zrodlo, haha );
       char bufor[haha.length()];
       bufor[haha.length()]=haha;                 //cannot convert 'std::string' to 'char' in assignment

 

I ani razu nie zadziałało. Pomoże ktoś?

Odnośnik do komentarza
Udostępnij na innych stronach

Pewnie da się to lepiej zrobić, ale to działa:

 

std::string haha;
std::getline( zrodlo, haha );
char bufor[haha.length()];
haha.copy(bufor,haha.length(),0);

Nie powinno...

 

std::string haha;
std::getline( zrodlo, haha );

char *bufor = new char[haha.size()];
haha.copy( bufor, haha.size() );

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki wszystkim, ale po wprowadzeniu kodu Arkariusa (który nie zadziałał) zacząłem drążyć w poszukiwaniu opisu .copy() ... dało to taki efekt, że znalazłem .at(), który po wkręceniu w pętlę for dał oczekiwany efekt. Działa. Dzięki raz jeszcze.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...