Id любят соединяли строку в моем меню Ncurses к чему-то вроде:меню Ncurses со связанной строки
/bin
/hello
/home
...
И у меня есть вектор компонентов имени w_files
, которые имеют переменную name
(бен, привет, дом, .. .), и когда я это сделать:
chdir(w_actDir.c_str());
this->selected = 0;
unsigned int n_choices = w_files.size();
my_items = (ITEM **)calloc(n_choices+1, sizeof(ITEM *));
for(unsigned int i = 0; i < n_choices; ++i){
string toShow = w_files[i]->getName();
my_items[i] = new_item(toShow.c_str(), "");
}
my_menu = new_menu((ITEM**)my_items);
set_menu_mark(my_menu, "");
set_menu_win(my_menu, this->w_window);
set_menu_format(my_menu, LINES-5, 1);
int center = COLS/2;
set_menu_sub(my_menu, derwin(this->w_window, LINES-5, center-5, 3, 1));
post_menu(my_menu);
wrefresh(this->w_window);
его нормально, результат выглядит:
bin
hello
home
...
Но когда изменение линии string toShow = w_files[i]->getName();
к string toShow = "/" + w_files[i]->getName();
Результат:
Может кто-нибудь помочь мне, пожалуйста? Спасибо.
Вы фактически должны получать предупреждения, если не ошибки об этом. Это потому, что ''/'' не является 'std :: string', поэтому вы не можете использовать его сначала в выражении конкатенации. Еще хуже, если 'getName' не возвращает строку' std :: string', а затем пытаюсь добавить два указателя. Вместо этого попробуйте 'std :: string ("/") + ...'. –
@JoachimPileborg: не работает ... я не получаю никаких предупреждений и компилирую witch -Wall -pedantic ... метод getName возвращает строку –
Важно ли хранить имена каталогов без «/»? – Losiowaty