Идентификация аргумента командной строки C ++ - PullRequest
1 голос
/ 12 сентября 2011

Мне нужно знать, заключен ли последний аргумент в моей командной строке в двойные кавычки или нет.Если это в двойных кавычках, я рассматриваю это как строку.Если это не так, мне нужно рассматривать его как файл, чтобы открыть и получить строку.Argv по умолчанию будет захватывать строку в двойных кавычках и обрезать кавычки, поэтому я не могу найти способ справиться с этой проблемой.

псевдокод выглядит примерно так ...

if(argv[argc-1] was called with surrounding double quotes){
    //handle as string (I already have code to do this)
}
else{
    //handle as filename (I already have code to do this)
}

1 Ответ

2 голосов
/ 12 сентября 2011

Все параметры в argv являются строками.Возможно, вам лучше переосмыслить свою стратегию.Попробуйте открыть аргумент, если это не удастся, обработайте его как строку.

В качестве альтернативы вы можете экранировать кавычки в командной строке, и они будут переданы вашему приложению:

$ program "\"this is a string\""

Редактировать : в примере кода предполагается, что вы используете оболочку Bash или что-то подобное

...