Как запустить программу с аргументами командной строки на Windows CMD

374
abhinonymous

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

на cmd

volume.exe NameOfInputFile.txt string1 string2 

код

int main(int argc, char* argv[]) { string s1=argv[2],s2=argv[3]; fstream file; file.open(argv[1],ios::in); ..rest of the code.. } 

это нормально работает на терминале в Linux, как

./volume.exe NameOfInputFile.txt string1 string2 

но как мне заставить его работать на windows? Я попробовал это, но не сработало

start /b /d volume.exe NameOfInputFile.txt string1 string2 
-1
Я полагаю, `start / b / d" volume.exe NameOfInputFile.txt string1 string2 "` должна работать просто отлично. Почему бы это не сработало? mnmnc 9 лет назад 0
Параметр `/ d` используется для установки рабочего каталога. Попробуйте выполнить эту команду вместо: `start / b volume.exe NameOfInputFile.txt string1 string2` and31415 9 лет назад 0
Ни `start / b volume.exe NameOfInputFile.txt строка1 string2` не работает, ни` start / b / d "C: .. address .." volume.exe NameOfInputFile.txt строка1 string2` abhinonymous 9 лет назад 0
тогда, когда никто не знает, очевидная вещь - упростить ваш тест и попробовать его без файла. как посмотреть, можете ли вы заставить работать программу, которая просто берет одну строку и отображает ее. основные проблемы barlop 9 лет назад 0
@barlop сделал это, не сработало, отсюда и пост на суперпользователя abhinonymous 9 лет назад 0
@abhinonymous Если вы сделали это, и это не сработало, это означает, что у вас был более простой, более краткий и понятный пример, демонстрирующий проблему. Вы должны были использовать это в своем вопросе, и вы все еще можете. barlop 9 лет назад 0
@abhinonymous, кроме того, укажите, как вы назвали программу. Ваш пример кода даже не включает ни одного примера в ... который кто-либо может скомпилировать и быстро протестировать. Помимо того, что, по вашему мнению, нет необходимости включать файл в первую очередь. barlop 9 лет назад 0

2 ответа на вопрос

0
user3793099

Попробуйте это, заключив имя файла NameOfInputFile.txt в кавычки, передавая его как строковый аргумент, а не как файл.

start /b /d volume.exe "NameOfInputFile.txt" string1 string2 
0
deming

Попробуй это:

start /b /d "volume.exe NameOfInputFile.txt string1 string2"