Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
pcmax
19 / 19 / 3
Регистрация: 29.01.2018
Сообщений: 540
1

аргументы функции main

03.05.2018, 13:26. Просмотров 312. Ответов 4
Метки нет (Все метки)

помогите разобраться
создаю файл c.cpp
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
 
 
system("ls argv[1]");
 
 
return 0;
Bash
1
g++ c.cpp
Bash
1
./a.out l
то есть пытаюсь передать команде ls параметр l
и выдает что не возможно получить доступ к argv[]

что не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2018, 13:26
Ответы с готовыми решениями:

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

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

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

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

Обработать аргументы функции main
Всем привет. В main() передается строка и число. Как их можно обработать? На это выскакивает...

4
shezuka
5 / 5 / 1
Регистрация: 16.10.2016
Сообщений: 10
03.05.2018, 13:44 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[]) {
  if(argc <= 1) {
    cout << "No arguments accepted" << endl;
  }
  else {
    cout << "Application arguments:" << endl;
  }
  for(int i = 1; i < argc; i++) {
    cout << argv[i] << endl;
  }
}
Рекомендую поучить С++ с нуля, смотря на Ваш код всё неправильно (без обид, но факт)
system - функция вызова системных команд
У Вас же явно прописана переменная `argv`, что хранит аргументы и `argc` - что хранит количество аргументов
Под первым элементов (вот таким: "argv[0]") хранится...типа "как запустилось приложение, через какую команду", в Вашем случае это значение равно "./a.out", второй индекс хранит желаемый Вами переданный аргумент "l" (обращение к аргументу "argv[1]")
1
pcmax
19 / 19 / 3
Регистрация: 29.01.2018
Сообщений: 540
03.05.2018, 14:11  [ТС] 3
а как передать l в ls ?

Добавлено через 24 секунды
ну то есть как это сделать правильно?
0
shezuka
5 / 5 / 1
Регистрация: 16.10.2016
Сообщений: 10
03.05.2018, 14:14 4
Нужно построить новую строку, это можно сделать очень просто используя `string` из стандартной библиотеки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[]) {
  if(argc == 1) {
    cout << "At leas one argument required" << endl;
    return -1;
  }
 
  string str = "ls ";
  str += argv[1];
 
  system(str.c_str());
 
  return 0;
}
1
pcmax
19 / 19 / 3
Регистрация: 29.01.2018
Сообщений: 540
03.05.2018, 21:23  [ТС] 5
вроде дошло
спасибо огромное
0
03.05.2018, 21:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2018, 21:23

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

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

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


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

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

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