У меня есть проблема, из-за которой мой код выполняется без ошибок, но консоль исчезает, как только появляется - PullRequest
0 голосов
/ 11 апреля 2020

мой код:

#include<iostream>
int main()
{
    int a{};
    std::cout<<"enter number";
    std::cin>>a;
}

журнал сборки для этого кода:

C:\WINDOWS\system32\cmd.exe /C C:/MinGW/bin/mingw32-make.exe -j8 SHELL=cmd.exe -e -f  Makefile
"----------Building project:[ ConstructorsAndDestructors - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'C:/Users/AT/Documents/OOP_basics/Constructors&Destructors'
C:/MinGW/bin/g++.exe  -c  "C:/Users/AT/Documents/OOP_basics/Constructors&Destructors/main.cpp" -g -O0 -Wall  -o Debug/main.cpp.o -I. -I.
C:/MinGW/bin/g++.exe -o Debug/ConstructorsAndDestructors @"ConstructorsAndDestructors.txt" -L.
mingw32-make.exe[1]: Leaving directory 'C:/Users/AT/Documents/OOP_basics/Constructors&Destructors'
====0 errors, 0 warnings====

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

Ниже приведен журнал сборки, когда я строю тот же код в другом проекте

C:\WINDOWS\system32\cmd.exe /C C:/MinGW/bin/mingw32-make.exe -j8 SHELL=cmd.exe -e -f  Makefile
"----------Building project:[ AcessingClassMembers - Debug ]----------"
mingw32-make.exe[1]: Entering directory 'C:/Users/AT/Documents/OOP_basics/AcessingClassMembers'
C:/MinGW/bin/g++.exe  -c  "C:/Users/AT/Documents/OOP_basics/AcessingClassMembers/main.cpp" -g -O0 -Wall  -o Debug/main.cpp.o -I. -I.
C:/MinGW/bin/g++.exe -o Debug/AcessingClassMembers @"AcessingClassMembers.txt" -L.
mingw32-make.exe[1]: Leaving directory 'C:/Users/AT/Documents/OOP_basics/AcessingClassMembers'
====0 errors, 0 warnings====

Поскольку нет видимых Разница в журналах сборки, то в чем причина проблемы.

1 Ответ

1 голос
/ 11 апреля 2020

Согласно этой странице документации https://wiki.codelite.org/pmwiki.php/Main/ProjectSettings

Настройки проекта

[...]
При выполнении вашей программы внутри CodeLite она на самом деле работает в терминале. Флажок Пауза по окончании выполнения , который отмечен по умолчанию, означает, что терминал остается открытым после закрытия программы; поэтому любые сообщения об ошибках или выходные данные программы остаются видимыми. Если вам это не нужно, вы можете снять флажок.

Таким образом, вам может потребоваться контролировать ваши настройки, а не добавлять ложные std::cin в конце вашей программы.

...