Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ChipChop
1 / 1 / 2
Регистрация: 29.09.2016
Сообщений: 111
1

Обработать аргументы функции main

04.10.2016, 11:45. Просмотров 789. Ответов 5
Метки нет (Все метки)

Всем привет.
В main() передается строка и число.

Как их можно обработать?

На это выскакивает ошибка
C++
1
2
3
4
5
6
7
8
9
10
char* str= new char[500];
    char* num= new char[400];
 
    
    str= argv[1];
    num= argv[2];
 
...
    delete[] str;
    delete[] num;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 11:45
Ответы с готовыми решениями:

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

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

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

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

аргументы функции main
помогите разобраться создаю файл c.cpp #include <iostream> using namespace std; int main(int...

5
ChipChop
1 / 1 / 2
Регистрация: 29.09.2016
Сообщений: 111
04.10.2016, 11:52  [ТС] 2
на нуле же имя программы идет

C++
1
2
str= argv[1];
    num= argv[2];
после ввода вывожу их сразу для проверки через cout - выводятся, потом ошибка

0
castaway
Эксперт С++
4938 / 3043 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 10
Завершенные тесты: 1
04.10.2016, 11:53 3
Лучший ответ Сообщение было отмечено ChipChop как решение

Решение

C++
1
2
3
4
5
    std::string str( args[1] );
    int num = std::stoi( args[2] );
 
    std::cout << str << std::endl;
    std::cout << num << std::endl;
1
nd2
2966 / 2504 / 1089
Регистрация: 29.01.2016
Сообщений: 8,344
04.10.2016, 12:09 4
Цитата Сообщение от ChipChop Посмотреть сообщение
потом ошибка
delete к чему применяешь?
Цитата Сообщение от ChipChop Посмотреть сообщение
C++
1
2
str= argv[1];
num= argv[2];
Выделенная память утекла.

Добавлено через 1 минуту
Тогда уж так делай:
C++
1
2
strcpy(str, argv[1]);
strcpy(num, argv[2]);
1
ChipChop
1 / 1 / 2
Регистрация: 29.09.2016
Сообщений: 111
04.10.2016, 12:11  [ТС] 5
Сделал, как в 3 посте, помогло, спасибо.
4й пост, спасибо, буду знать
0
AlexVRud
483 / 194 / 73
Регистрация: 04.07.2014
Сообщений: 547
04.10.2016, 12:17 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
 
int  main(int argc, char* argv[]) {
  const char *program_name = argv[0];
 
  if (argc != 3) {
    printf("Using:\n"
           "%s string number\n", program_name);
    return -1;
  }
 
  const char *str = argv[1];
  const int   num = atoi(argv[2]);
 
  printf("Run:\n"
         "%s %s %d\n", program_name, str, num);
 
  return 0;
}
0
04.10.2016, 12:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2016, 12:17

Аргументы для функции main()
Я совершенно не понял, каким образом работает, допустим вот такой фрагмент программы: int main(int...

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

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


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

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

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