С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 15.11.2018
Сообщений: 11

Я 3 день учу C++, написал маленькую программку чтобы быстро компилировать проекты но возникла проблема:

02.12.2018, 10:22. Показов 1499. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
 
 
int DedugCPP();
int RunCPP();
//------------------------------
int main(void)
{ 
 char com[10];   
 
 std :: cout << "----Deduger C++ ----" << std :: endl;
 std :: cout << "Comand:";
 std::cin >> com;
 
 //Тут команда которую я ввожу не обрабатывается и проходит дальше и программа завершается!
 
if(com == "#Dedug"){ 
  DedugCPP();
}
  
else if(com == "#Run"){ 
   RunCPP();}
 
}
//--------------------------------
 
 
int DedugCPP(void){
    std :: cout <<"*****************" << std::endl;
    system("g++ C:\\C\\Cpp.cpp -o C:\\C\\file.exe");
    system("cls");
    std :: cout <<"*****************" << std::endl;
 return 0;}
 
 
int RunCPP(void){
    system("g++ C:\\C\\Cpp.cpp -o C:\\C\\file.exe");
    system("cls");
    std :: cout <<"*****************" <<std::endl;
    system("C:\\C\\file.exe");
    std :: cout <<"*****************" <<std::endl;
 return 0;}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2018, 10:22
Ответы с готовыми решениями:

написал небольшую программку и возникла п р о б л е м м к а
как сделать так, чтобы когда я вставлял флешку то она сама добавлялась в автозагрузку ми скрывалась от диспетчера задач???

Добрый день, у меня возникла проблема с visual basic
Здравствуйте, у меня возникла проблема с visual basic. Разумеется по незнанию, а сроки поджимают. Прошу помощь у интернет гуру кибер...

Проверьте маленькую программку
Вычислить сумму по модулю 2, значений 22-ух ячеек памяти с адреса 0117h. (ДЛЯ МП К580ВМ80) Правильно я сделал? Не могу проверить так как...

12
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
02.12.2018, 10:31
Лучший ответ Сообщение было отмечено Diggg как решение

Решение

string используй для com.
0
1 / 1 / 0
Регистрация: 15.11.2018
Сообщений: 11
02.12.2018, 10:39  [ТС]
А в какой библиотеки string?
0
112 / 91 / 31
Регистрация: 24.10.2018
Сообщений: 336
02.12.2018, 10:54
Цитата Сообщение от Diggg Посмотреть сообщение
А в какой библиотеки string?
библиотекЕ. В стандартной. И ввод делать через geline, иначе все, что после первого пробела, не будет читаться.
0
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125
02.12.2018, 14:20
Учись студент! Тебе ещё нужно многому научится, это: пользоваться стандартной библиотекой, нормально форматировать код, эффективно писать код, и т.д. Кароче, если нужно будет помочь с обучением C++: Пиши. Но вернёмся к твоему... коду. Я его исправил! (Внимательно посмотри на него, и сделай для себя вывод, я для тебя его закомментировал)
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
void compile()
{
    cout << "Compilating now:\n";
    system("g++ Cpp.cpp -o file.exe");
    cout << "Compilating end.\n";
}
 
void run()
{
    clock_t time = clock();
    system("file.exe");
    cout << "The program was completed in " << clock()-time << " milliseconds";
    cin.get();
}
 
int main()
{ 
    bool command = 0; // На хранение команды мы потратим всего один байт!
 
    // Выводим название программы и предлагаем пользователю выбрать команду
    cout << "C++ Compile/Run\n"
    cout << "Select command:\n";
    cout << "0: Compile\n1: Run\n: ";
    cin  >> com;
 
    switch(command) // Особая, удобная штука, Используется вместо if(...){...} else if(...){...}...
    {
        case false:
        compile();
        break;
 
        case true:
        run();
        break;
    }
 
    return 0;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
02.12.2018, 14:47
Цитата Сообщение от Diggg Посмотреть сообщение
char com[10];
if(com == "#Dedug"){
Тип данных char не умеет сравнивать строки по ==. Сравниваются указатели, но они, конечно, не равны. char-строки сравниваются так
C
1
if (strcmp(com, "#Dedug")==0) {
Конечно, удобнее использовать тип данных С++ string. Он умеет и сравнивать, и прибавлять. Но разобраться с тем, что доступно char-переменным, имхо, необходимо. Хотя бы для того, чтобы понять, зачем придумали класс string и всю его родню (AnsiString, QString...)

Добавлено через 6 минут
Цитата Сообщение от kcalbCube Посмотреть сообщение
switch(command) // Особая, удобная штука, Используется вместо if(...){...} else if(...){...}...
Вещь полезная, но факультативная. Не очень удобная, если сравниваются строки. И пример, приведенный вами, не слишком убедителен. При наличии 2-3 вариантов удобнее именно конструкция if ..else if.. else ...
Впрочем, удобство - дело вкуса. Но уметь пользоваться и той и другой конструкцией, безусловно, необходимо.
0
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125
03.12.2018, 02:22
Я умею пользоваться if... else if.. else.... , конструкция switch удобна как раз в моментах когда нужно сравнить много данных, не строк. Мой пример можно легко переделать под string, но тогда конструкция switch должна будет улететь на луну.

Добавлено через 8 минут
Кстати да, здесь идёт небольшая экономия 9 байт. В оригинале 4 байта уходит в ветер, здесь же всего 1 байт хранит команду.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.12.2018, 09:42
Цитата Сообщение от kcalbCube Посмотреть сообщение
здесь идёт небольшая экономия 9 байт. В оригинале 4 байта уходит в ветер, здесь же всего 1 байт хранит команду
Как ты это подсчитал?
0
 Аватар для kcalbCube
15 / 13 / 4
Регистрация: 16.08.2018
Сообщений: 125
03.12.2018, 09:50
В моем примере команда хранится в переменной типа bool(1 байт), в первоначальной версии всё хранится в C-style строке длиной 10 байт
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.12.2018, 10:13
bool 4 байта будет вероятнее всего.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
03.12.2018, 10:18
nmcf,
C++
1
printf("%d", sizeof(bool));
дало 1 байт
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.12.2018, 11:00
TrollHammer, я про фактическое выделение памяти.
0
 Аватар для COKPOWEHEU
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
03.12.2018, 15:15
Цитата Сообщение от Diggg Посмотреть сообщение
написал маленькую программку чтобы быстро компилировать проекты
В чем была цель написания этой программки, просто одна из учебных задач или активное ее использование?
Если задача учебная, то продолжайте ей заниматься. Помимо исправлений текущей версии можно в будущем добавить отлавливание выдачи компилятора для самостоятельного анализа, запуск отладчика, да и вообще написание собственной IDE. Как конечная цель выглядит достаточно глобально и изучить за это время успеете многое.
Если задача практическая, то вы подходите не с той стороны. Ваш код почти целиком состоит из вывода на экран информации и запуска сторонних приложений. Для этой задачи язык низкого уровня не лучший выбор, лучше воспользоваться скриптовыми языками: командной оболочкой (bash, cmd) или, в вашем случае лучше, make.
Code
1
2
3
4
5
6
7
8
9
10
11
src=main.c
dst=a.out
flags=-Os -gdwarf-2 -Wall -Wextra -Wpedantic -Werror
cc=g++
 
all:
    @echo Compile with g++
    $(cc) $(src) $(flags) -o $(dst)
run: $(dst)
    @echo Run
    @./$(dst)
С подсчетом времени будет чуть посложнее: утилита time есть, но ее вывод тоже надо обрабатывать, отличать от вывода программы, да и не уверен есть ли она в составе вашей системы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2018, 15:15
Помогаю со студенческими работами здесь

Оцените маленькую программку на java
Маленькая pet-программа. Палками бить не сильно - не переименовал нормально переменные. ...

Создать маленькую программку в Delphi
Приблизительные задания: 1.Бегущая строка (при нажатии на 1кнопку строка перемещается циклически вправо на 1 символ, при нажатии на...

Написать маленькую программку (нужно в качестве подарка для друга)
Здравствуйте, решил подарить другу футболку со скрином турбопаскаля. Нужна помощь в написании маленькой программы, хочу чтобы в ней...

Как компилировать проекты для юникода?
Как компилировать проекты для юникода? Чтоб, например, DrawText была DrawTextW, а не DrawTextA, а файл описания ресурсов правильно...

Где в Notepad++ можно компилировать проекты?
Где в Notepad++ можно компилировать проекты?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru