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

Консольные команды - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
28.12.2012, 23:38     Консольные команды #1
Здравствуйте, столкнулся с небольшой проблемой. Хотел сделать так, чтобы при нажатии клавиши открывалась консоль, прописывались подряд 3 команды и консоль закрывалась. Но, к сожалению этого сделать не удалось, поэтому решил сделать ещё проще:
создал консольное приложение, прописал следующий код
C++
1
2
3
4
5
6
int _tmain(int argc, _TCHAR* argv[])
{
    system("netsh");
    system("pause");
    return 0;
}
но и тут меня ждало разочарование, после команды system("netsh"); консоль дальше ничего делать не хочет. Кто знает, в чем может быть проблема?

Добавлено через 9 часов 51 минуту
Все, проблема решилась, теперь встала другая:
C++
1
 system("netsh -c wlan set hostednetwork mode=allow ssid= " + NameI + " passphrase=" + PassI + " keyUsage=persistent");
Так ругается что [BCC32 Error] Main.cpp(35): E2085 Invalid pointer addition. В чем может быть проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 23:38     Консольные команды
Посмотрите здесь:

Вопрос про консольные приложения C++
Консольные пятнашки C++
C++ консольные игры
консольные приложения C++
многопотоковые консольные приложения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.12.2012, 23:45     Консольные команды #2
Lord3dfx, system принимает в качестве параметра строку в Си-стиле. А их складывать оператором + нельзя.
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
28.12.2012, 23:48  [ТС]     Консольные команды #3
Toshkarik, и как быть, если я хочу в ssid и passphrase вставить свои значения?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
29.12.2012, 00:35     Консольные команды #4
Или пользуйтесь std::string, или используйте функцию strcat. Лучше первое. Как вариант:
C++
1
std::system( std::string( "netsh -c wlan set hostednetwork mode=allow ssid= " + NameI + " passphrase=" + PassI + " keyUsage=persistent").c_str());
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 00:38  [ТС]     Консольные команды #5
Цитата Сообщение от Toshkarik Посмотреть сообщение
Или пользуйтесь std::string, или используйте функцию strcat. Лучше первое. Как вариант:
C++
1
std::system( std::string( "netsh -c wlan set hostednetwork mode=allow ssid= " + NameI + " passphrase=" + PassI + " keyUsage=persistent").c_str());
[BCC32 Error] Main.cpp(35): E2316 'string' is not a member of 'std'
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.12.2012, 00:40     Консольные команды #6
Цитата Сообщение от Lord3dfx Посмотреть сообщение
[BCC32 Error] Main.cpp(35): E2316 'string' is not a member of 'std'
#include <string>
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 00:46  [ТС]     Консольные команды #7
Цитата Сообщение от gray_fox Посмотреть сообщение
#include <string>
[BCC32 Error] Main.cpp(36): E2285 Could not find a match for 'std::string::basic_string(UnicodeString)'
[BCC32 Error] Main.cpp(36): E2031 Cannot cast from 'UnicodeString' to 'std::string'

Добавлено через 2 минуты
Решил обойтись без переменных и сделать вот так:
C++
1
std::system( AnsiString( "netsh -c wlan set hostednetwork mode=allow ssid= " + Name->Text + " passphrase=" + Pass->Text + " keyUsage=persistent").c_str());
Все работает, но NAme->Text и Pass->Text он не видит

В дополнении: как сделать так, чтобы консоль не моментально закрывалась?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.12.2012, 00:47     Консольные команды #8
Цитата Сообщение от Lord3dfx Посмотреть сообщение
UnicodeString
Переводи сначала свои переменные в std::string, у него нет конструктора из этого типа.
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 00:56  [ТС]     Консольные команды #9
Цитата Сообщение от gray_fox Посмотреть сообщение
Переводи сначала свои переменные в std::string, у него нет конструктора из этого типа.
C++
1
2
std::string PassI = Form1->Pass->Text;
std::string NameI = Form1->Name->Text;
Скорее всего я тут неправильно перевел, но [BCC32 Error] Main.cpp(35): E2285 Could not find a match for 'std::string::basic_string(const std::string&)'
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.12.2012, 01:05     Консольные команды #10
Цитата Сообщение от Lord3dfx Посмотреть сообщение
[BCC32 Error] Main.cpp(35): E2285 Could not find a match for 'std::string::basic_string(const std::string&)'
Хм. А если
C++
1
2
std::string PassI = Form1->Pass->c_str();
std::string NameI = Form1->Name->c_str();
?
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 01:08  [ТС]     Консольные команды #11
Цитата Сообщение от gray_fox Посмотреть сообщение
Хм. А если
C++
1
2
std::string PassI = Form1->Pass->c_str();
std::string NameI = Form1->Name->c_str();
?
Возможно вы имели ввиду
C++
1
2
std::string PassI = Form1->Pass->Text.c_str();
   std::string NameI = Form1->Name->Text.c_str();
Если да, то [BCC32 Error] Main.cpp(35): E2285 Could not find a match for 'std::string::basic_string(const std::string&)'
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.12.2012, 01:16     Консольные команды #12
Цитата Сообщение от Lord3dfx Посмотреть сообщение
Возможно вы имели ввиду
Ну я не знаю в каком виде данные в этих формах храняться. Нагуглил, оказалось, что c_str() возвращает не совсем то, что я думал) Гугл так же подсказал std::string Pass1 = AnsiString(Form1->Pass->Text).c_str();
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 01:17  [ТС]     Консольные команды #13
Всем спасибо кто откликнулся, дело оказалось в том, что надо было писать не .c_str(); а .t_str(); тогда все правильно преобразовывалось
gray_fox
29.12.2012, 01:20
  #14

Не по теме:

Цитата Сообщение от Lord3dfx Посмотреть сообщение
надо было писать не .c_str(); а .t_str();
t_str(), и кто это придумал?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 01:23     Консольные команды
Еще ссылки по теме:

C++ C++ Консольные программы
Битовые операции. Консольные формулы C++
C++ Диалог с пользователем. Консольные команды

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

Или воспользуйтесь поиском по форуму:
Lord3dfx
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 32
29.12.2012, 01:23  [ТС]     Консольные команды #15
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


t_str(), и кто это придумал?

Даже не знаю, но, как ни странно, все работает
Yandex
Объявления
29.12.2012, 01:23     Консольные команды
Ответ Создать тему
Опции темы

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