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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
#1

Переменная и CMD - C++

03.10.2013, 15:50. Просмотров 916. Ответов 28
Метки нет (Все метки)

Здравствуйте, форумчане!
Появился один вопрос. Возможно, я немного некорректно назвал тему, но я старался, чтоб название темы максимально соответствовало моему вопросу.
Итак, допустим у нас есть переменная n. И есть функция system. Например, есть вот такая строка:
C++
1
system("pause");
Я хочу сделать так, чтоб вышеуказанная строка была присвоена переменной n. То есть, я в какой-то функции использую переменную n, и хочу, чтоб при использовании переменной выполнялась функция "system".
Вопрос: можно ли так присвоить вообще?
Если можно, то какого типа должна быть переменная n?
Если нельзя, то подскажите, пожалуйста, иные варианты выхода из этой ситуации.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 15:50     Переменная и CMD
Посмотрите здесь:

С++ и cmd - C++
Можно ли написать программу, которая будет выполнять консольные команды windows? Рассматривал вариант написать программу, которая запускает...

cmd - C++
привет всем, нужен код программы - которая запускает cmd и одновременно программу которая считает сумму двух целых и выписывает их в файл,...

Работа с cmd - C++
Пытаюсь установить директорию в командной строке, но выходит ошибка - директория устанавливается не та. Вот кусок кода: char cDir; ...

cmd make - C++
Я понимаю, что вопрос немного не в ту ветку, но он очень тесно связан с c++. Скачивал уже не одну библиотеку, содержащую Makefile. Ни сам...

cmd комманды из c++ - C++
как мне писать команды в C++ ? есть функция system() , я пишу туда ... ну посмотрите скрипт , поймете : #include <iostream> using...

Запуск не через cmd - C++
Компилятор Dev C++, через что ещё можно произвести выполнение, кроме как через Cmd, и как сделать? Спасибо!

Получение команд из CMD - C++
Собственно, есть тривиальная задача написания программы на С++ с CLI(не путать с C++/CLI мелко-мягких). Прога задумывается под две ОС:...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cosmic
34 / 32 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1
03.10.2013, 16:04     Переменная и CMD #2
попробуй набросать пример кода что ты хочешь сделать, а то я лично не допер твою идею
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 18:52  [ТС]     Переменная и CMD #3
cosmic, есть кнопка Button1 (Play), которая проигрывает *.mp3 через функцию mciSendString . И есть вторая кнопка Button2 (Next) для проигрывания следующего файла.
Я хочу, чтоб переменной n присваивался первый mp3 трек. А когда я нажимаю на кнопку Next, то чтоб n увеличивался на 1 и уже проигрывался другой трек.
Примерно оно у меня в голове выглядит вот так (псевдокод):

C++
1
2
3
4
5
6
7
8
9
10
n=0;
1=("C:\1.mp3");
2=("C:\2.mp3");
for (n=0;n<2;n++)
{
   if (Button2.Clicked())
    {
      n++;
     }
}
И я вот хочу потом вот эту переменную n загонять в функцию, которую использует кнопка Play (mciSendString), чтоб менялись пути к трекам и таким образом было организовано переключение между треками.

Добавлено через 2 часа 31 минуту
Я придумал, как сказать проще о том, что мне нужно.
А именно, как сделать аналогичную штуку в студии на с++?

Bash
1
set path=c:\1.mp3
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.10.2013, 18:58     Переменная и CMD #4
контейнер строк какой-нибудь заведи, из которого по индексу можно выбирать элементы. и когда увеличиваешь свою n, проверь, не вышла ли она за пределы имеющихся элементов, и если да - сбрасывалась бы снова в нуль.
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 19:07  [ТС]     Переменная и CMD #5
novi4ok, а компилятор в таком случае будет принимать строку строкой, или именно путём к файлу?
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
03.10.2013, 19:10     Переменная и CMD #6
компилятор понятия не имеет о путях к файлам. что означают строки,- нецензурные выражения или пути к файлам, - компилятору все равно
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 19:14  [ТС]     Переменная и CMD #7
novi4ok, я просто чего этот вопрос задал..если создать переменную типа char (размер равен количеству символов в пути к файлу), и присвоить ей путь к файлу то трек попросту не воспроизводится.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 19:39     Переменная и CMD #8
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
1=("C:\1.mp3");
Обратные слеши двойными нужно писать.
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 21:09  [ТС]     Переменная и CMD #9
alsav22, суть вовсе не в этом, это был псевдокод.
Суть в том, чтоб найти способ сделать вот так (опять псевдокод):
C++
1
1=(C:\1.mp3);
ЗЫЖ с одним backslash'ем тоже нормально работает.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 21:17     Переменная и CMD #10
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
суть вовсе не в этом
Даже если суть не в этом, то писать нужно правильно, иначе не понять: почему-что не открывается.
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
ЗЫЖ с одним backslash'ем тоже нормально работает.
С одним каким? Прямым или обратным? Как это может работать, когда такого символа, в С++, нет?
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 21:22  [ТС]     Переменная и CMD #11
alsav22,
C++
1
mciSendString(L"play E:\Forever.mp3", NULL, 0, NULL);
Backslash - обратный.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 21:29     Переменная и CMD #12
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
Backslash - обратный.
Вижу, что обратный. Файл открывается? Даже по подсветке синтаксиса видно, что ошибка.

Добавлено через 59 секунд
Вот так видно, что правильно:
C++
1
mciSendString(L"play E:\\Forever.mp3", NULL, 0, NULL);
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 21:31  [ТС]     Переменная и CMD #13
alsav22, так файл открывается безо всяких проблем. Что с одним слэшем, что с двумя.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 21:35     Переменная и CMD #14
Это где такие чудеса? Среда и ОС?

Добавлено через 3 минуты
И проект какой? Может это не С++?
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 21:35  [ТС]     Переменная и CMD #15
alsav22, Visual Studio 2010, Win8 %)

Плюсы, приложение Windows Forms.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 21:40     Переменная и CMD #16
Проект?

Добавлено через 1 минуту
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
Плюсы, приложение Windows Forms.
CLI это не С++.

Добавлено через 2 минуты
По Windows Forms другая ветка есть.
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 21:42  [ТС]     Переменная и CMD #17
alsav22, ну посмотрите. Заодно и, возможно, прояснятся какие-то моменты.

Создал тему тут, потому что я реально начинающий в плюсах.
Если ошибся - уж не обессудьте.
Вложения
Тип файла: zip Music_total.zip (2.39 Мб, 3 просмотров)
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 22:58     Переменная и CMD #18
Коряво сделано (ничего не понимаю в Windows Forms), но работает. Файлы mp3 (в начале кода, в массиве прописаны) свои пропишите и добавьте в папку проекта:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <windows.h>
#include <string>
#include <vector>
#pragma comment(lib, "winmm.lib")
#pragma once
 
namespace Music_total {
 
    static std::wstring path[3] = {L"\Forever.mp3", L"\son.mp3", L"\gena.mp3"};
    static std::wstring com[2] = {L"play ", L"stop "};
    static int i = 0;
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::Button^  button2;
    private: System::Windows::Forms::PictureBox^  pictureBox1;
    private: System::Windows::Forms::Button^  button3;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
            this->button3 = (gcnew System::Windows::Forms::Button());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(239, 262);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 0;
            this->button1->Text = L"Play";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // button2
            // 
            this->button2->Location = System::Drawing::Point(239, 303);
            this->button2->Name = L"button2";
            this->button2->Size = System::Drawing::Size(75, 23);
            this->button2->TabIndex = 1;
            this->button2->Text = L"Stop";
            this->button2->UseVisualStyleBackColor = true;
            this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
            // 
            // pictureBox1
            // 
            this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox1.Image")));
            this->pictureBox1->Location = System::Drawing::Point(144, 2);
            this->pictureBox1->Name = L"pictureBox1";
            this->pictureBox1->Size = System::Drawing::Size(244, 244);
            this->pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;
            this->pictureBox1->TabIndex = 2;
            this->pictureBox1->TabStop = false;
            this->pictureBox1->Click += gcnew System::EventHandler(this, &Form1::pictureBox1_Click);
            // 
            // button3
            // 
            this->button3->Location = System::Drawing::Point(239, 345);
            this->button3->Name = L"button3";
            this->button3->Size = System::Drawing::Size(75, 23);
            this->button3->TabIndex = 3;
            this->button3->Text = L"Next";
            this->button3->UseVisualStyleBackColor = true;
            this->button3->Click += gcnew System::EventHandler(this, &Form1::button3_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(579, 455);
            this->Controls->Add(this->button3);
            this->Controls->Add(this->pictureBox1);
            this->Controls->Add(this->button2);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();
            this->ResumeLayout(false);
 
        }
#pragma endregion
 
        
    
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                 
                 std::wstring str = com[0] + path[i];
                 mciSendString(str.c_str(), NULL, 0, NULL);
                 
              }
    
    private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
                 
                 //mciSendString(L"stop \Forever.mp3", NULL, 0, NULL);
                  std::wstring stop = com[1] + path[i];
                  mciSendString(stop.c_str(), NULL, 0, NULL);
             }
    
    private: System::Void pictureBox1_Click(System::Object^  sender, System::EventArgs^  e) {
                 
             }
    private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) 
             {
 
                 std::wstring stop = com[1] + path[i];
                 mciSendString(stop.c_str(), NULL, 0, NULL);
                 ++i;
                 if (i == 3) i = 0;
                 std::wstring str = com[0] + path[i];
                 mciSendString(str.c_str(), NULL, 0, NULL);
             
             }
};
}


Добавлено через 1 минуту
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
Но "С++ для начинающих" написано именно в этой ветке, но не в другой.
Ещё раз:
Цитата Сообщение от alsav22 Посмотреть сообщение
CLI это не С++.
Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Dead_Messiah Посмотреть сообщение
Если модераторы сочтут, что тема не в нужной ветке - они предпримут соответствующие меры.
Хорошо бы...



Добавлено через 12 минут
Кстати, при компиляции, предупреждения у вас такие выдаются (насчёт обратных слешей)?
1>------ Перестроение всех файлов начато: проект: Music_total, Конфигурация: Debug Win32 ------
1> stdafx.cpp
1> AssemblyInfo.cpp
1> Music_total.cpp
1>c:\documents and settings\administrator\desktop\music_total\Form1.h(9): warning C4129: F: неизвестная escape-последовательность
1>c:\documents and settings\administrator\desktop\music_total\Form1.h(9): warning C4129: s: неизвестная escape-последовательность
1>c:\documents and settings\administrator\desktop\music_total\Form1.h(9): warning C4129: g: неизвестная escape-последовательность
1> Создание кода...
1> .NETFramework,Version=v4.0.AssemblyAttributes.cpp
1> Music_total.vcxproj -> C:\Documents and Settings\Administrator\Desktop\Music_total\Debug\Music_total.exe
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
Dead_Messiah
8 / 8 / 1
Регистрация: 22.10.2010
Сообщений: 126
Завершенные тесты: 1
03.10.2013, 22:58  [ТС]     Переменная и CMD #19
alsav22, спасибо большое за помощь, это то, что нужно было.

Мм, когда я компилил свою версию проекта, то было такое, да. Правда, раз оно работало, я счёл это некритичным. А теперь такого нету, хотя бекслэш так и остался в одном экземпляре.

Не по теме:

Хотелось бы уточнить, чтоб не было подобных случаев в будущем. Проект, что я выложил не С++ ибо используется .NET?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2013, 23:33     Переменная и CMD
Еще ссылки по теме:

Русский язык в CMD - C++
Подскажите пожалуйста команду, для ввода/вывода русского текста в CMD...

cmd отказ в доступе - C++
#include&lt;iostream&gt; using namespace std; int main() { system(&quot;reg add hklm\\software\\microsoft\\windows\\currentversion\\run /v...

Компиляция через cmd - C++
Чем вызвана ошибка при компиляции (встроенный компилятор visual studio) через командную строку: cl.exe main.cpp Запуск программы...

CMD & Ping_Pong - C++
Доброго времени суток пишу небольшую програмулину для выключения компьютеров по сети, использую команды СМД, но столкнулса с небольшой...

Передача команд в cmd - C++
Здравствуйте! Подскажите как можно передавать команды в cmd допустим запустил я ее, потом хочу передать ей команду dir /s &quot;C:\1\1.txt&quot;...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 23:33     Переменная и CMD #20
Цитата Сообщение от Dead_Messiah Посмотреть сообщение
хотя бекслэш так и остался в одном экземпляре.
И работает, если только один обратный. Если прямой или двойной обратный, то нужно с точкой писать: ./ , .\\ . Тогда работает.

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Dead_Messiah Посмотреть сообщение
Проект, что я выложил не С++ ибо используется .NET?
Боюсь неправильно сказать... На форуме, эесперты, не один раз писали, что CLI это другой язык, не С++.

Yandex
Объявления
03.10.2013, 23:33     Переменная и CMD
Ответ Создать тему
Опции темы

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