Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для SoBadDay
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269

Передача аргументов в подпрограмму

29.12.2020, 21:15. Показов 1196. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый день. Умею передавать аргументы подпрограмме посредством %Program% argument, если int main задан с параметрами. Например int main (int argc, char* argv[]) Тогда все аргументы записываются последовательно в argv[]. А есть ли возможность передавать аргументы, если подпрограмма использует cin >>?
Например
C++
1
2
3
4
5
6
7
8
int main()
{
int val;
cout << "Write down a value\n";
cin >> val;
cout << val;
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.12.2020, 21:15
Ответы с готовыми решениями:

Передача аргументов bat-файлу
Написать командый файл который: 1)принимает в качестве параметра полное имя файла (диск+каталог+имя) 2)вызывает файл 1.bat передавая...

Передача аргументов в сценарий/скрипт
Не раз встречаю в технической литературе где %1 %2 %3 %4 %5 %6 %7 %8 %9 в теме по Передача аргументов в сценарии\скрипт описывают как...

Передача чисел и других аргументов пакетному файлу
1) Запрашивает у пользователя строку в виде числа 2) Вызывает файл 1.bat, передавая ему строку 3) Вызывает файл 2.bat, передавая ему...

7
840 / 347 / 67
Регистрация: 20.11.2012
Сообщений: 809
30.12.2020, 08:37
SoBadDay, можно много всего накостылить, но зачем?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{   
    using std::cout; using std::cin;
    setlocale(LC_ALL, "Russian");
 
    int argc{};
    char** argv = nullptr;
    __asm
    {
        push ecx
        mov ecx, dword ptr [ebp+12]
        mov argv, ecx
        pop ecx
    }
    
    cout << argv[0];
 
    return 0;
}
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
30.12.2020, 10:16
Цитата Сообщение от SoBadDay Посмотреть сообщение
Например int main (int argc, char* argv[]) Тогда все аргументы записываются последовательно в argv[]. А есть ли возможность передавать аргументы, если подпрограмма использует cin >>?
Creating a Child Process with Redirected Input and Output
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
30.12.2020, 12:04
SoBadDay, не могли бы вы уточнить, что вы называете подпрограммой? Просто я привык считать, что "подпрограмма" в рамках С++ это по сути то же что и функция. А у вас явно речь идёт не о функциях, а о запуске внешней программы. И если речь идёт о запуске внешней программы, то было бы интересно узнать как вы её запускаете.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
30.12.2020, 12:25
Цитата Сообщение от SoBadDay Посмотреть сообщение
А есть ли возможность передавать аргументы, если подпрограмма использует cin >>?
Конечно, есть. Просто есть 2 способа общения программы с внешним миром. И один не исключает другого.
В самом деле их не 2, а больше. Просто сейчас мы говорим об этих двух
0
 Аватар для SoBadDay
67 / 42 / 30
Регистрация: 26.03.2019
Сообщений: 269
31.12.2020, 10:12  [ТС]
likehood,
Подпрограммой я называю исполняемый exe файл, созданный VisualStudio при сборке проекта

На примере приведенного кода, умею писать batch скрипт следующего содержания


Windows Batch file
1
2
3
4
5
6
7
8
9
SET Program="%~1"
 
%Program% 18 > output.txt || goto err
 
exit /B 0
 
:err
echo "failed"
exit /B 1
C++
1
2
3
4
5
int main (int argc, char* argv[])
{
cout << argv[1];
return 0;
}
В output.txt запишется число 18, переданное при помощи командной строки. Ищу способ проделать ту же операцию, но не с с использованием argv[], а с поточным вводом с клавиатурыcin, когда например в С++ программе предполагается подобный ввод информации
0
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
31.12.2020, 10:37
Цитата Сообщение от SoBadDay Посмотреть сообщение
Ищу способ проделать ту же операцию, но не с с использованием argv[], а с поточным вводом с клавиатуры cin, когда например в С++ программе предполагается подобный ввод информации
Я, конечно, не силён в bat-файлах, но веротяно что-то вроде этого:
Windows Batch file
1
echo "18" | %Program%
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
31.12.2020, 12:36
Цитата Сообщение от SoBadDay Посмотреть сообщение
Подпрограммой я называю исполняемый exe файл, созданный VisualStudio при сборке проекта
Это не соответствует общепринятой терминологии. Но мы вас, кажется, поняли. То что вы пытаетесь сделать, называется "конвейер". Или около того.
Дерзайте и пробуйте!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2020, 12:36
Помогаю со студенческими работами здесь

Передача аргументов в подпрограмму с использованием командной строки
Программа заменяет в строке на символ, введенный пользователем, все символы с индексами в диапазоне с границами, введенными пользователем...

Определить подпрограмму list, которая возвращает список из обсчитанных аргументов, что идут после нее
Визначити спеціальну підпрограму list, яка повертає список із обрахованих аргументів, що йдуть після неї. Така команда слугує для...

Разработать модуль, содержащий одну подпрограмму с двумя входными аргументами, вычисляющую сумму квадратов этих двух аргументов
Разработать модуль, содержащий одну подпрограмму с двумя входными аргументами, вычисляющую сумму квадратов этих двух аргументов. Написать...

передача аргументов
Здравствуйте,объясните пожалуйста,на примерах кода,что означает передача аргументов по ссылке, по значению,передача копий аргументов?

Передача аргументов в ф-ию
void test(const T&amp; a) {} Это понятно, а что это за запись: void test(T const&amp; a) {} И как понять ссылку на ссылку,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru