Esta é provavelmente uma pergunta embaraçosa, pois a resposta é obviamente óbvia.
Eu uso o Visual Studio há anos, mas é a primeira vez que desenvolvo qualquer desenvolvimento de 'Aplicativo de Console'.
Quando executo meu aplicativo, a janela do console é exibida, a saída do programa é exibida e a janela é fechada quando o aplicativo é encerrado.
Existe uma maneira de mantê-lo aberto até que eu verifique a saída ou exibir os resultados após o fechamento da janela?
c
visual-studio
console
Martin
fonte
fonte
Respostas:
Se você executar sem depurar (Ctrl + F5), por padrão, ele solicitará que você pressione Enter para fechar a janela. Se você deseja usar o depurador, coloque um ponto de interrupção na última linha.
fonte
ctrl+f5
não está funcionando, não háProperties
quando clico com o botão direito do mouse no projeto, também owrench icon
está acinzentado.Clique com o botão direito do mouse no seu projeto
Selecione Console (/ SUBSYSTEM: CONSOLE) na
SubSystem
opção ou você pode apenas digitar Console no campo de texto!Agora tente ... deve funcionar
fonte
CTRL+F5
falhará se você, por exemplo, adicionar um novo arquivo C ++ a um projeto vazio.Aqui está uma maneira de C / C ++:
Coloque isso na parte superior do seu programa e, se estiver em um sistema Windows (
#ifdef _WIN32
), criará uma macro chamadaWINPAUSE
. Sempre que você quiser que seu programa seja pausado, chameWINPAUSE;
e ele fará uma pausa no programa, usando o comando DOS. Para outros sistemas como Unix / Linux, o console não deve encerrar na saída do programa.fonte
pause
comando é específico do Windows.Ir para Menu de Depuração-> Pressione Iniciar sem Depuração
fonte
Se você estiver usando o .NET, coloque
Console.ReadLine()
antes do final do programa.Isso vai esperar
<ENTER>
.fonte
Console.ReadKey()
apenas esperar por qualquer tecla.A partir do Visual Studio 2017 (15.9.4), existe uma opção:
O fragmento correspondente da documentação do Visual Studio :
fonte
tente ligar
getchar()
logo antes domain()
retorno.fonte
(/ SUBSYSTEM: CONSOLE) não funcionou para o meu vs2013 (eu já o tinha).
"executar sem depuração" não é uma opção, pois não quero alternar entre depuração e exibição de saída.
Eu terminei com
Solução usada no qtcreator pré 2.6. Agora, enquanto o qt está crescendo, o vs está indo para o outro lado. Pelo que me lembro, no vs2008 não precisávamos de tais truques.
fonte
Aqui está uma solução que (1) não requer alterações de código ou pontos de interrupção e (2) pausa após o término do programa para que você possa ver tudo o que foi impresso. Pausará após F5 ou Ctrl + F5. A principal desvantagem é que, no VS2013 Express (como testado), ele não carrega símbolos, portanto, a depuração é muito restrita.
Crie um arquivo em lotes. Liguei para o meu
runthenpause.bat
, com o seguinte conteúdo:A primeira linha executará qualquer comando que você fornecer e até oito argumentos. A segunda linha irá ... pausar.
Abra as propriedades do projeto | Propriedades de configuração | Depuração.
$(TargetPath)
(ou o que estiver em "Comando").runthenpause.bat
.Agora, quando você corre,
runthenpause.bat
iniciará seu aplicativo e, após seu término, fará uma pausa para que você veja a saída do console.Vou postar uma atualização se descobrir como carregar os símbolos. Eu tentei
/Z7
por isso, mas sem sucesso.fonte
basta colocar como sua última linha de código:
fonte
Você pode executar seu executável em um prompt de comando. Dessa forma, você pode ver toda a saída. Ou você pode fazer algo assim:
e dessa maneira a janela não fecharia até você inserir dados para a
a
variável.fonte
adicione "| pause ”na caixa de argumentos de comando na seção de depuração nas propriedades do projeto.
fonte
pause
parece funcionar apenas em arquivos em lotes e, embora receba entrada do seu programa no STDIN, não reimprime esse texto. Tentei substituir|
por&&
, mas não teve efeito - presumivelmente porque não está sendo executado com um shell de comando (cmd.exe).Basta pressionar CNTRL + F5 para abri-lo em uma janela de linha de comando externa (o Visual Studio não tem controle sobre ele).
Se isso não funcionar, adicione o seguinte ao final do seu código:
Isso espera que você pressione uma tecla para fechar a janela do terminal assim que o código chegar ao fim.
Se você quiser fazer isso em vários lugares, coloque o código acima em um método (por exemplo
private void Pause()
) e chamePause()
sempre que um programa atingir um fim possível.fonte
Uma solução um pouco melhor:
no início do seu programa.
Prós:
cin.sync(); cin.ignore();
truque em vez desystem("pause");
)Contras:
fonte
Ou use:
cin.get();
ou
system("pause");
Certifique-se de fazer um deles no final da
main()
função e antes dareturn
instrução.fonte
Você também pode usar esta opção
fonte
No meu caso, experimentei isso quando criei um projeto C ++ vazio no VS 2017 community edition. Você precisará definir o subsistema como "Console (/ SUBSYSTEM: CONSOLE)" em Propriedades de configuração.
fonte
Visual Studio 2015 , com importações . Porque eu odeio quando exemplos de código não fornecem as importações necessárias.
fonte
Use
Console.ReadLine()
no final do programa. Isso manterá a janela aberta até você pressionar a Entertecla. Consulte https://docs.microsoft.com/en-us/dotnet/api/system.console.readline para obter detalhes.fonte