Так что я создаю приложение командной строки, и я пытаюсь разрешить команды с параметрами, или если параметр заключен в котировки, он будет рассматриваться как один параметр.std :: getline удаляет пробелы?
Пример: тест "1 2"
"тест" будет команда "1 2" будет один параметр, передаваемый.
Используя следующий фрагмент кода:
while(getline(t, param, ' ')) {
if (param.find("\"") != string::npos) {
ss += param;
if (glue) {
glue = false;
params.push_back(ss);
ss = "";
}
else {
glue = true;
}
}
else {
params.push_back(param);
}
}
Однако станд :: GetLine кажется автоматически удалить пробелы, который вызывает мои параметры для изменения от «1 2» до «12»
Я огляделся, но результаты залиты «Ответ на вопрос об удалении», а не «Как удалить лишние пробелы».
У кого-нибудь есть предложения?
Вместо того, чтобы изобретать колесо, использовать GNU [ 'gengetopt'] (HTTP: //www.gnu. org/software/gengetopt/gengetopt.html) для автоматизации создания набора правил синтаксического анализа командной строки 'getopt_long', который - среди других опций - обрабатывает текстовые элементы, заключенные в кавычки. –