2016-04-13 5 views
-1

Для того, чтобы запустить свою программу, вы должны ввести:Ошибка параметров извлечения из командной строки

(program name) -s (a number) -f (the file name) 

Проблема я застрял на том, что имя файла в string и параметры команды находятся в char.

Вот мой код, так что я могу проиллюстрировать мою проблему более четко:

if(argc==1){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==2){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==3){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==4){ 
    cout << "Please Enter it in the Form of (prog -s (number of state) -f (file name)\n"; 
} 
if(argc==5){ 

     if((argv[1][0]=='-'&& argv[1][1]=='s')&&(argv[3][0]=='-'&& argv[3][1]=='f')){ 
     int x; 
     x=argv[2][0]-48; 
     state *array; 
     array= create_states(x); 

     ifstream File; 
     File.open(argv[4][0]); 

На этой линии:

file.open(argc[4][0]); 

Я получаю сообщение об ошибке.

+2

'if (code.Formatting() == FormattingTypes :: VeryBad) std :: cout <<" Пожалуйста, отформатируйте свой код! " << std :: endl; ' – ForceBru

+0

сожалею об этом, я редактировал его, и когда я закончил редактирование, он сказал, что кто-то уже его редактировал, кого я благодарен. – pnewbie

ответ

0

Оно должно быть:

ifstream File; 
    File.open(argv[4]); 

Кроме того, если путь к файлу содержит пробелы, используйте двойные кавычки.

+0

спасибо, что было глупо ошибка. – pnewbie

+0

@pnewbie случается со всеми нами :) – niceman

Смежные вопросы