Форум программистов, компьютерный форум CyberForum.ru

Печать в строку - C++

Восстановить пароль Регистрация
 
akalji
 Аватар для akalji
3 / 3 / 1
Регистрация: 10.03.2014
Сообщений: 45
10.03.2014, 22:49     Печать в строку #1
Доброго времени суток. Подскажите пожалуйста, как в плюсах печатать в строку?
Допустим у нас есть строка:
C++
1
char command[1024];
и во время работы программы она формируется (строка нужна для прямой передачи в командную строку параметров запуска)

Допустим приложение, конфиг к которому формируем app.exe:

C++
1
command << "app.exe ";
Далее узнаем разрядность системы:

C++
1
command << "-a"<<" "<<arсh()<<" ";
ну и например что рабочая папка X:\test
C++
1
2
char *folder={"X:\\test"}
command << "-f"<<" "<<folder<<" ";
и в итоге при печати на экран command получалось

app.exe -a 86_64 -f X:\test
(все это нужно чтобы потом передать такую команду в CMD то есть
C++
1
system(command);
)

Заранее спасибо.
ЗЫ: операторы направления использовал от фонаря, чтобы вопрос однозначно понимался. Нужен самый каноничный способ.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 22:49     Печать в строку
Посмотрите здесь:

Поменять местами строку с максимальный элемент и строку с минимальным элементом матрицы C++
C++ Ввести строку и слово, удалить все вхождения слова и вывести строку
Матрицы: поменять местами первую строку и строку, содержащую максимальный элемент C++
Указатель на строку: как выводить не всю строку целиком, а конкретную букву C++
Описать функцию PoslSu(t), которая выводит на печать последнюю строку непустого текстового файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.03.2014, 07:29     Печать в строку #2
Цитата Сообщение от akalji Посмотреть сообщение
как в плюсах печатать в строку?
С клавиатуры или форимровать в коде?
Если с клавиатуры:
C++
1
2
3
4
5
char command[1024];
cin.getline(command, 1024);
// если использовать string
string command;
getline(cin, command);
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.03.2014, 07:46     Печать в строку #3
Цитата Сообщение от akalji Посмотреть сообщение
ЗЫ: операторы направления использовал от фонаря, чтобы вопрос однозначно понимался.
Можно и с "операторами направления", если строковый поток использовать:
C++
1
2
3
4
5
6
7
8
9
#include <sstream>
using namespace std;
...
stringstream command;
char *folder = "X:\\test";
    
command << "app.exe " << "-a" << " " << arсh() << " "
             << "-f" << " " << folder << " ";
cout << command.str() << endl;
Миниатюры
Печать в строку  
akalji
 Аватар для akalji
3 / 3 / 1
Регистрация: 10.03.2014
Сообщений: 45
11.03.2014, 15:36  [ТС]     Печать в строку #4
Спасибо, но теперь с
C++
1
stringstream command;
содержимое не передается:
C++
1
system(command.str());
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.03.2014, 16:56     Печать в строку #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если так:
C++
1
system(command.str().c_str());
akalji
 Аватар для akalji
3 / 3 / 1
Регистрация: 10.03.2014
Сообщений: 45
11.03.2014, 17:42  [ТС]     Печать в строку #6
Спасибо! Все заработало. Вот полный вариант тестовой программы, если еще кому будет интересно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <sstream>
using namespace std;
 
int main(){
    stringstream command;
    char *folder = "X:\\test";
 
    command << "echo "<<"app.exe " << "-a" << " " << " "
        << "-f" << " " << folder << " ";
    
    system(command.str().c_str());
}
Yandex
Объявления
11.03.2014, 17:42     Печать в строку
Ответ Создать тему
Опции темы

Текущее время: 14:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru