Другие языки программирования и технологии

Нужна помощь с С++ (новичок)

Что ж, есть код. В коде используются функции. А функция состоит из:
а) получения входных данных;
б) работы с ними.
Проблема, как не трудно догадаться, в пункте б). После получения входных данных, мне нужно с помощью них написать скрипт, который бы пинговался с каким-либо сайтом (зависит от этих самых данных). В принципе, такое реализовать можно и через system(), но.. но как тогда сделать конкатенацию? Т. е. код должен выглядеть как-то так:

system("ping" strcat(host) "-t -l" strcat(size_p));

Конечно, от этого вылетит куча ошибок, но примерный замысел становится чуть яснее. В общем, мне нужно как-то сделать конкатенацию строк внутри функции system() без использования strcat(). Пишет вам бывший питонист, который привык к конкатенации с помощью знаков +.
Если я правильно понял вопрос, могу предложить примерный вариант решения:

char buffer[255]; // Результат не более 255 символов (приведет к переполнению при превышении размера)
sprintf(buffer, "ping %s -t -l %d", host, size_p); // При условии что host - строка, size_p - целое число
system(buffer);
Юрий Егоров
Юрий Егоров
460
Лучший ответ
Дима Голотовский Хм... благодарю, стоит попробовать.
Дима Голотовский Спасибо! Моя проблема решена, все работает.
Если забыть о С++ и вспомнить о С. Тогда можно сделать массив (объявить указатель на массив, тогда он будет как бы динамическим, правда, не забудьте под него память ЗАРАНЕЕ выделить - malloc, realloc....), по 1 элементу на символ. Ну, а потом... потом просто печатаете через printf ВЕСЬ массив - да и все. Если в функции - указываете индексы элементов, которые Вы бы желали видеть в ней.
Азат Аминов
Азат Аминов
15 313
Ответа на вопрос я не знаю, но советую сделать следующие попытки:
1. Ввести в поиск "concatenation C++ system()", рунет велик, но интернет несопоставимо больше.
2. Задать вопрос на www_cyberforum_ru, но сперва пробежаться по внутреннему поиску. Там часто помогают и это целый специализированный форум, а не раздел. А также конкретно на Хабрахабре, именно в внутреннем поиске..
3. Погуглить туториал по библиотеке команд system. Не можешь найти напрямую, найди косвенно, с другого края.
Дима Голотовский Хорошо, спасибо. Не сработает способ предыдущего оратора (Raven'a) - конечно же буду гуглить дальше.
Может, и не получишь трех ответов. Вопрос не простой, действительно. Лучше весь текст скопировать и вставить в поисковую строку - может, что и получится)
Дима Голотовский Пишу я в "Ответы маил ру" только тогда, когда совсем отчаялся. По запросу "конкатенация в С++" только и выходит функция strcat, которая мне не поможет...
даже трех ответов не получишь... и те вроде-ну ты тупооой. хахаха. Тут с этим туго.
Дима Голотовский Верю в существование адекватных и цивилизованных людей. Может повезет. Не повезет - буду думать дальше.