Работа с argv - C (СИ)
Формулировка задачи:
Добрый день. Такой вопрос:
Вот код:
через командную запускаю 3.exe lol
Выдает только "l" , и я НИКАААК не могу заставить командную прописать всё имя.. помогите, в чем проблема? уже кучу вариантов перепробовал... по идее же всё правильно.. но нет(
int _tmain(int argc,char* argv[])
{
printf("Prived %s",argv[1]);
return 0;
}
Спасибо тем кто хоть посмотрел
Не знаю как удалить тему.. (( но вопрос уже решен..
Решение задачи: «Работа с argv»
textual
Листинг программы
int main(int argc,char* argv[])
{
FILE *fin,* fout;
if(argc!=3)
{ puts("There is some misstake, try again later..."); exit(1); }
else
{
fin=fopen("argv[1]","r");
fout=fopen("argv[2]","w");
}
fclose(fin);
fclose(fout);
return 0;
}
Объяснение кода листинга программы
Инструкция начинается с объявления функции main, которая принимает два аргумента: int argc и char* argv[].
- if(argc!=3) — это условие, которое проверяет, что количество переданных аргументов (argc) не равно 3. Если это условие истинно, то программа выводит сообщение об ошибке и завершается с кодом 1.
- else — это блок кода, который выполняется, если условие в if-условии ложно.
- fin=fopen(
argv[1],r); — это открытие файла с именемargv[1]для чтения. Здесьargv[1]— это первый аргумент, переданный в функцию main. - fout=fopen(
argv[2],w); — это открытие файла с именемargv[2]для записи. Здесьargv[2]— это второй аргумент, переданный в функцию main. - fclose(fin); — это закрытие файла с именем
argv[1]. - fclose(fout); — это закрытие файла с именем
argv[2]. - return 0; — это завершение функции main. Вот список элементов кода в порядке их появления:
- int main(int argc,char* argv[])
- if(argc!=3)
- puts(
There is some misstake, try again later...) - exit(1)
- else
- fin=fopen(
argv[1],r) - fout=fopen(
argv[2],w) - fclose(fin)
- fclose(fout)
- return 0