Mentoss Opublikowano 8 Sierpnia 2011 Udostępnij Opublikowano 8 Sierpnia 2011 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 Więcej opcji udostępniania...
Arkarius Opublikowano 8 Sierpnia 2011 Udostępnij Opublikowano 8 Sierpnia 2011 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); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 8 Sierpnia 2011 Autor Udostępnij Opublikowano 8 Sierpnia 2011 Błędu nie wywaliło. Sprawdzę, czy działa. Dzięki :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 8 Sierpnia 2011 Udostępnij Opublikowano 8 Sierpnia 2011 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 Więcej opcji udostępniania...
Rudy Opublikowano 8 Sierpnia 2011 Udostępnij Opublikowano 8 Sierpnia 2011 Istotnie, haha.length() nie jest stałą wartością, więc trzeba stworzyć tablicę dynamiczną. Dodatkowo, powinno być haha.length()+1 (żeby zmieścić null-character). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mentoss Opublikowano 8 Sierpnia 2011 Autor Udostępnij Opublikowano 8 Sierpnia 2011 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi