пишу
getline(myfile, inner);
for (int i=0; inner[i]==' '; i++)
startSpace++;
for (int i=inner.size(); inner[i]==' '; i--)
endSpace++;
но в endSpace
всегда лежит 0, даже если в файле после этой строки были пробелы. чем можно скушать строку из файла вместе со всеми пробелами?
(В предположении, что inner
- это std::string
.)
Во-первых, ваш второй цикл начинает итерирование с i = inner.size()
. Символ inner[i]
- это всегда символ \0
. Поэтому ваш второй цикл не делает никаких итераций вообще. Итерирование во втором цикле нужно начинать с inner.size() - 1
, лучше всего одним из методов отсюда и с использованием беззнакового типа std::string::size_type
.
Во-вторых, а что произойдет с вашим вторым циклом, если входная строка целиком состоит из пробелов? Не забывайте проверять индексы циклов на выход за пределы строки. Я не знаю, что за ответ должен выдать ваша проверка на такую строку, но наверное нет смысла итерировать вторым циклом вообще, если первый цикл прошел всю строку.
в endSpace
всегда 0 ибо он сразу же видит не пробел, а символ '\0' строку похоже. потому и не гонит цикл дальше
for (int i=inner.size()-1; inner[i]==' '; i--)
endSpace++;
это решило проблему
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно при клике на кнопке открыть приложение камеры, сделать снимок и сохранить егоВот сам обработчик:
Имеется сервер который слушает команды от подключившихся клиентовПри обработке команды(запросов) клиенту отправляется массив данных
Возможно этот вопрос уже задавался, но я его так и не нашелКак добавить пункт в "глобальное" контекстное меню