Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

13.06.2012, 11:53. Просмотров 1002. Ответов 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?
как мне вывести или использовать теперь то, что у меня лежит в этой переменной?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2012, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргументы, передаваемые в main (C++):

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

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

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

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

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

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

20
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
13.06.2012, 12:05 #2
Переменная должна иметь тип char *. Но лучше копировать параметр функцией strcpy.
1
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 12:08  [ТС] #3
я тут так подумал.. нафиг вообще копировать в переменную

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

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

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

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

C++
1
FILE* fopen(argv[argc-2],"w+");
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
13.06.2012, 13:21 #8
Где у Вас расположена эта запись?
0
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:23  [ТС] #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;
        }
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
13.06.2012, 13:26 #10
Я имел ввиду - это у Вас все находится в main?
Должно быть что то вроде этого:
C++
1
2
3
int main( int argc, char *argv[]) {
   FILE* fopen(argv[argc-2], "w+");
   ....
0
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 13:32  [ТС] #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;
        }
 
    }
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
13.06.2012, 13:59 #12
Цитата Сообщение от Вечный_Студент Посмотреть сообщение
FILE* fopen(argv[argc-2],"w+");
А ничего, что самой переменной для файла нет?
0
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 14:01  [ТС] #13
Цитата Сообщение от kazak Посмотреть сообщение
А ничего, что самой переменной для файла нет?
есть она.

C++
1
>cpp1.exe -b -s -f=10 test.txt text_output.rez
argv[argc-2] == test.txt
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
13.06.2012, 14:04 #14
Я имее в виду ту переменную, с помощью которой осуществляется работа с файлом, та самая, которая имеет тип FILE*.
0
Вечный_Студент
2 / 2 / 0
Регистрация: 16.05.2012
Сообщений: 38
13.06.2012, 14:33  [ТС] #15
а нет. показалось.
не могу сообразить.

Добавлено через 28 минут
C++
1
FILE* fopen(argv[argc-2],"w+");
здесь что-то еще должно быть?
0
13.06.2012, 14:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 14:33
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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