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

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

Войти
Регистрация
Восстановить пароль
 
 
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
#1

Аргументы, передаваемые в main - C++

13.06.2012, 11:53. Просмотров 971. Ответов 20
Метки нет (Все метки)

Всем доброго утра. Вот такой вопрос возник.
Запуская программу в консоли имеем вид

C++
1
>cpp1.exe -b -s -f=10 test.txt text_output.rez
cpp1.exe -запуск самой программы
-b -s -f=10 - аргументы
test.txt - исходный файл
text_output.rez - результирующий файл

правильно ли я понимаю, что
C++
1
a=argv[argc-1]
присвоит мне в переменную a, имя результирующего файла?
какого типа должна быть переменная a?
как мне вывести или использовать теперь то, что у меня лежит в этой переменной?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2012, 11:53     Аргументы, передаваемые в main
Посмотрите здесь:

Где хранятся аргументы, передаваемые в функцию - C++
собственно - сабж... интересует вопрос, где же (в какой памяти) всё таки хранятся аргументы, которые передаются в функцию? и где можно...

аргументы main - C++
int main() { } int main(int argc, char **argv) { }

Аргументы ( main) - C++
Чтобы зашифровать некоторый текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву...

Аргументы функции main() - C++
Написать программу для определения, чередуются ли в данной последовательности символы ‘+’ и ‘-‘, и сколько раз каждый из этих символов...

Аргументы функции main - C++
что значит определение оформить как функцию и сортировку оформить как функцию??

Аргументы функции main - C++
Здравствуйте! Очень нужна Ваша помощь... Дано натуральное n. Для n, вводимого с клавиатуры получите действительную квадратную матрицу...

Аргументы функции main - C++
Здравствуйте, программисты! Написать программу для определения, есть ли среди символов этой последовательности символы, образующие слово...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.06.2012, 12:05     Аргументы, передаваемые в main #2
Переменная должна иметь тип char *. Но лучше копировать параметр функцией strcpy.
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 12:08  [ТС]     Аргументы, передаваемые в main #3
я тут так подумал.. нафиг вообще копировать в переменную

C++
1
    printf(argv[argc-1]);
можно ведь и так делать?

только на -1 дает последний элемент.
а на -2 ошибку
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.06.2012, 12:24     Аргументы, передаваемые в main #4
У printf первый аргумент задает форматную строку, тогда уже так
C++
1
printf("%s\n", argv[argc-1]);
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:04  [ТС]     Аргументы, передаваемые в main #5
C++
1
    FILE* fopen(argv[argc-2],w+);
в чем ошибка?

Добавлено через 36 секунд
Цитата Сообщение от kazak Посмотреть сообщение
У printf первый аргумент задает форматную строку, тогда уже так
C++
1
printf("%s\n", argv[argc-1]);
не обязательны идентификаторы. можно и без них)
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
13.06.2012, 13:09     Аргументы, передаваемые в main #6
Вечный_Студент, Без спецификатора - не корректно.

Добавлено через 42 секунды
Ну и плюс, если уверены, что argc - 2 не будет нулем или меньше тогда так.
C
1
FILE* fopen(argv[argc-2], "w+");
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:17  [ТС]     Аргументы, передаваемые в main #7
error C2061: syntax error : identifier 'argv'

C++
1
FILE* fopen(argv[argc-2],"w+");
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
13.06.2012, 13:21     Аргументы, передаваемые в main #8
Где у Вас расположена эта запись?
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:23  [ТС]     Аргументы, передаваемые в main #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
printf("File %s not found!\n",argv[argc-2]);
    printf("sozdat? \ny n");
    switch(getch())
        {
            case 'y': 
                FILE* fopen(argv[argc-2],"w+"); 
                break;
            case 'n': 
                break;
            default:
                printf("error");
                return 0;
        }
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
13.06.2012, 13:26     Аргументы, передаваемые в main #10
Я имел ввиду - это у Вас все находится в main?
Должно быть что то вроде этого:
C++
1
2
3
int main( int argc, char *argv[]) {
   FILE* fopen(argv[argc-2], "w+");
   ....
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:32  [ТС]     Аргументы, передаваемые в main #11
C++
1
2
3
4
5
6
7
8
9
10
11
void main(int argc, char *argv[]) 
{
    printf("Got %d arguments:\n", argc);
    for(int i = 0; i < argc; ++i)
        puts(argv[i]);
    FILE *in, *out;
    int fclose (FILE *stream);
 
    if ((in=fopen(argv[argc-2],"r"))==NULL)
    {
        printf("File %s not found!\n",argv[argc-2]);
то что выше работает не ругается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    printf("sozdat? \ny n");
    switch(getch())
        {
            case 'y': 
                FILE* fopen(argv[argc-2],"w+"); 
                break;
            case 'n': 
                break;
            default:
                printf("error");
                return;
        }
 
    }
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.06.2012, 13:59     Аргументы, передаваемые в main #12
Цитата Сообщение от Вечный_Студент Посмотреть сообщение
FILE* fopen(argv[argc-2],"w+");
А ничего, что самой переменной для файла нет?
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 14:01  [ТС]     Аргументы, передаваемые в main #13
Цитата Сообщение от kazak Посмотреть сообщение
А ничего, что самой переменной для файла нет?
есть она.

C++
1
>cpp1.exe -b -s -f=10 test.txt text_output.rez
argv[argc-2] == test.txt
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
13.06.2012, 14:04     Аргументы, передаваемые в main #14
Я имее в виду ту переменную, с помощью которой осуществляется работа с файлом, та самая, которая имеет тип FILE*.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 14:33     Аргументы, передаваемые в main
Еще ссылки по теме:

обработать аргументы функции main - C++
Всем привет. В main() передается строка и число. Как их можно обработать? На это выскакивает ошибка char* str= new char; ...

Шифрование. Аргументы функции MAIN - C++
Привет всем:) Нужна помощь... С++... Аргументы функции MAIN. Фраза шифруется следующим образом: после первых двух символов...

Аргументы для функции main() - C++
Я совершенно не понял, каким образом работает, допустим вот такой фрагмент программы: int main(int argc, char **argv) { if (argc&gt;1) ...

Аргументы командной строки в функции main - C++
Вопрос собственно говоря банальный в домашнем задании требуеться: параметр пронраммы передаеться через командную строку.Пример: ...

Аргументы main(int argc, char *argv[]) - C++
Эксперты в с++,объясните пожалуйста новичку примерно понял как использовать эти аргументы,но не как не могу понять куда писать то что он...


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

Или воспользуйтесь поиском по форуму:
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 14:33  [ТС]     Аргументы, передаваемые в main #15
а нет. показалось.
не могу сообразить.

Добавлено через 28 минут
C++
1
FILE* fopen(argv[argc-2],"w+");
здесь что-то еще должно быть?
Yandex
Объявления
13.06.2012, 14:33     Аргументы, передаваемые в main
Ответ Создать тему
Опции темы

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