Вчера я сделал простую программу на C++, которая использует аргументы, переданные через командную строку.Как обрабатывать аргументы командной строки?
E.G. myDrive:\myPath\myProgram.exe firstWord secondWord
Программа прекрасно работать и делать то, что он должен, но есть немного любопытства у меня есть: я должен был написать argc --;
прежде, чем я мог бы использовать это хорошо, в противном случае у меня есть сбой во время выполнения [Составитель не будет говорить!].
В частности, argc
дает мне плохое время, когда я не даю ни одного слова в качестве аргумента в программу, когда я запустить его ...
Сейчас он работает, так что это не плохо, но я интересно, почему это происходит! [P.S. делая argc --;
и печать, она дает 0
как значение]
EDIT: Здесь все istructions, которые используют argc
int main(int argc, char *argv[]) {
[...]
argc --;
if(argc > 0){
if(firstArg.find_last_of(".txt") != string::npos){
reading.open(argv[1], ios::binary);
[...]
}
}
if ((!(firstArg.find_last_of(".txt") != string::npos)) && argc > 0){
[...]
for(int i = 1; i <= argc; i ++){
[...]
toTranslate = argv[i][j];
[...]
toTranslate = argv[i][j];
}
}
}
Можете ли вы показать код, который демонстрирует эту проблему? –
Я уверен, что вы написали что-то вроде 'i <= argc'. Покажите нам код. – Nawaz
Я редактирую ответ, дайте мне секунду! – ingroxd