Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 53, средняя оценка - 4.64
Гамбит
14 / 14 / 1
Регистрация: 19.10.2009
Сообщений: 93
#1

Запуск через командную строку с параметрами - C++

10.01.2011, 09:03. Просмотров 8362. Ответов 2
Метки нет (Все метки)

Помогите плиз!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main(int argc, char *argv[])
{
int k,N;
clrscr();
LIST *lst;
FILE *fi,*fo;
if (( fi = fopen(argv[2],"r")) == NULL)
{ printf("”*©« *Ґ ¬®¦Ґв Ўлвм ®вЄалв ** звҐ*ЁҐ!\n"); getch(); exit(0);}
fo = fopen(argv[3],"w");
N=atoi(argv[1]);
lst=read_list(lst,fi);
write_list(lst,N,fo);
printf("%d\n",i);
for(k=1;k<=i;k++)
printf("%d\n",a[k]);
}
как её запустить через командную строку????? я прописываю путь к файлу и 4 параметра f:\bc\bin\1.exe 4 10 1.txt 2.txt почему оно мне пишет что файл не может быть открыт для чтения? тоесть argv[2] не открывается. и за что вообще отвечает argc? не нашел ничего внятного в нете

Добавлено через 3 минуты
или нужно какой нибудь разделитель при вводе???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2011, 09:03     Запуск через командную строку с параметрами
Посмотрите здесь:

Запуск Gnu через командную строку - C++
Здравствуйте, у меня возникла проблема такая интересная (лично для меня :D), вобщем до недавнего времени я занимался паскалем и решил...

Передача символов через командную строку - C++
Доброго времени суток! Прошу помочь мне с решением данной задачи: Через командную строку передать два символа. Распечатать символ с...

Написание текста в обратном порядке через командную строку - C++
Помогите написать прогу которая после ввода текста пишет его в обратном порядке.До завтра нужно сделать.Пжл

Есть задача. Нужно запустить её через командную строку - C++
Люди, подскажите что нужно добавить/вписать в задачке, чтобы при открытии её в командной строке она там же и исполнялась. Если...

Вывести переменные окружения передаваемые через командную строку - C++
Всем привет дали такое задание: найти и вывести переменные окружения передаваемые через командную строку. не менее 3. не могу никак...

Ошибка при запуске приложения через командную строку - C++
подскажите, пожалуйста, в чем ошибка(почему не открывает файл)?

Не открывается файл при запуске через командную строку - C++
Написал небольшую игру (скорее прототип игры). Игра загружает список уровней с файла &quot;levels.txt&quot;, всё лежит в одной папке. Когда запускаю...

Как рекурсивно скомпилировать проект через командную строку? - C++
Как рекурсивно скомпилировать проект через командную строку? Если у меня заголовочные файлы в папке Headers. Но мне нужен универсальный...

Необходимо передать аргумент виртуальной машине через командную строку - C++
Добрый вечер, не знал куда кинуть эту тему, поэтому она здесь. Есть задача запустить виртуальную машину и провести тестирование. В сэмплах...

Не работает программа при запуске в Windows через командную строку - C++
Дали задание скомпилить cmake под Linux. Там все получилось. Как доп.задание дали перенести и скомпилить cmake на windows через командную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,507
10.01.2011, 09:24     Запуск через командную строку с параметрами #2
печать аргументов по одному в строке
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char ** argv){
    while ( argc-- )
        printf("%s\n", *argv++);
    return 0;
}
Код
C:\cpp\system>cl pargs.c
Оптимизирующий 32-разрядный компилятор Microsoft (R) C/C++ версии 16.00.30319.01
 для 80x86
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

pargs.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:pargs.exe
pargs.obj

C:\cpp\system>pargs.exe
pargs.exe

C:\cpp\system>pargs.exe one two three
pargs.exe
one
two
three

C:\cpp\system>pargs.exe one "two three"
pargs.exe
one
two three

C:\cpp\system>
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
10.01.2011, 12:00     Запуск через командную строку с параметрами #3
argc - количество аргументов командной строки
argv[] - массив этих элементов
argv[0] - элемент который содержит путь к данному файлу

в твоей программе argv[2] это число 10, вот и не открывается

Добавлено через 4 минуты
вот пример
программа копирует файлы посимвольно, copy.exe <input file> <output file>
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <conio.h>
#include <locale.h>
 
int main(int argc, char * argv[])
{
    setlocale(LC_ALL,"");
    if (argc <= 1)
    {
        printf("Ошибка! Не хватает аргументов для работы программы.\n");
        _getch();
        return 0;
    }
 
    else if (argc > 3)
    {
        printf("Ошибка! Слишком много аргументов для работы программы.\n");
        _getch();
        return 1;
    }
 
    else if (argc == 2)
    {
        printf("Ошибка! Выходной файл не указан.\n");
        _getch();
        return 1;
    }
 
    const char *fileNameInput = argv[1];
    const char *fileNameOutput = argv[2];
    FILE *fileInput;
    FILE *fileOutput;
 
    fileInput  = fopen(fileNameInput, "rt");
    fileOutput = fopen(fileNameOutput, "wt");
 
    if (fileInput == NULL)
    {
        printf("Ошибка открытия входного файла.\n");
        _getch();
        return 1;
    }
 
    else if (fileOutput == NULL)
    {
        printf("Ошибка открытия выходного файла.\n");
        _getch();
        return 1;
    }
 
    printf("Начинаем копировать файлы.\n");
    int ch;
    while ((ch = fgetc(fileInput)) != EOF)
    {
        fputc(ch, fileOutput);
    }
    printf("Копирование файлов успешно завершено.\n");
 
    fclose(fileInput);
    fclose(fileOutput);
    
    fileInput = fileOutput = NULL;
 
    _getch();
    return 0;
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru