Duvida C++

owny

Power Member
boas

Estou a iniciar-me em C++ e tenho aqui uma pequena duvida.

Comecei a desenvolver aplicações modo consola (Win32 Console) e cada vez que chamo a consola com a aplicação e ela me vai apresentar valores aparece a janela e desaparece logo.
Qual é o comando que faz com que a consola não desapareça? Um STOP ou kker coisa do género.

Cumps,
 
O meu código é este:
#include "stdafx.h"
#include "stdio.h"

void main()


{
int numero, soma;
soma=0;
numero=1;
while (numero!=00)
{
printf("Introduza numero com dois digitos: \n");
scanf("%d", &numero);
soma = soma+numero;
printf("\nResultado parcial: %i\n\n", soma);
}

printf ("A soma dos numeros introduzidos foi: %i\n\n\n", soma);
}
Podem-me explicar como faço a especie de STOP?

Exprimentei o scanf(); e não deu e o return 0 tb não.
alvez esteja a colocar no local errado a instrução.
 
Isso é C, não é C++.

#include "stdafx.h" //Não Precisas, penso eu
#include "stdio.h"

void main()

{
int numero, soma; // Podes atribuir logo um valor aqui ex: int numero=0, soma=1;
soma=0;
numero=1;
while (numero!=00) // Para quê 2 zeros?
{
printf("Introduza numero com dois digitos: \n");
scanf("%d", &numero);
soma = soma+numero; // Podes fazer soma+=numero, é a mesma coisa
printf("\nResultado parcial: %i\n\n", soma); // %i?
}

printf ("A soma dos numeros introduzidos foi: %i\n\n\n", soma); // %i? - Já agora, aqui não precisas dos /n, não há nada a seguir

getchar(); // Assim espera que digites qualquer coisa antes de terminar

//Não podes colocar um return 0; porque o main é void
// Para fazer return 0; o main tem de ser int
//aqui podes fazer simplesmente:
return;
}
Se estás a compilar com o Visual Studio, em vez de fazer F5 faz ctrl+F5, ou seja, em vez de fazer "start debugging" faz "start without debugging". Desta forma não precisas de usar o getchar.
 
Última edição:
boas

Estou a iniciar-me em C++ e tenho aqui uma pequena duvida.

Comecei a desenvolver aplicações modo consola (Win32 Console) e cada vez que chamo a consola com a aplicação e ela me vai apresentar valores aparece a janela e desaparece logo.
Qual é o comando que faz com que a consola não desapareça? Um STOP ou kker coisa do género.

Cumps,

depende do ide q estas a usar.. se for o visual studio mete um break point na ultima linha.

breakpoint.gif
 
Isso é C, não é C++.

Se estás a compilar com o Visual Studio, em vez de fazer F5 faz ctrl+F5, ou seja, em vez de fazer "start debugging" faz "start without debugging". Desta forma não precisas de usar o getchar.

Obrigado pelas dicas.

não é C++? Podes explicar melhor?

SIm a cena do CTRL + F5 é o que costumo usar, mas quando faço o release da aplicação ela no fim quando apresenta o resultado desaparece logo.

Vou testar com o getchar();

Estou a usar Visual Studio 2008

Thanks
 
Última edição:
Obrigado pelas dicas.

não é C++? Podes explicar melhor?

SIm a cena do CTRL + F5 é o que costumo usar, mas quando faço o release da aplicação ela no fim quando apresenta o resultado desaparece logo.

Vou testar com o getchar();

Estou a usar Visual Studio 2008

Thanks

Isso não é C++ porque estas a usar a sintaxe de C.

Usa system("pause") antes do return 0; (isto só funciona em Windows e é desaconselhado). De qualquer forma, se estiveres a usar o ctrl+F5 a janela não devia desaparecer.

Depois, usar uma função main do tipo void é desaconselhado. Esta deve retornar um int.
 
não é C++? Podes explicar melhor?

Como o sir_atmc disse, não é C++ porqueestás a usar sintaxe de C. :)
C++ nasceu a partir de C mas é muito diferente quer em "filosofia" quer em sintaxe.

Para teres uma ideia aqui fica o teu programa em C e C++:
C
#include <stdio.h>

int main(){
int numero=1, soma=0;

while(numero!=0){
printf("Introduza numero com dois digitos: \n");
scanf("%d",&numero);
soma+=numero;
printf("\nResultado parcial: %d\n\n", soma);
}
printf ("A soma dos numeros introduzidos foi: %d", soma);
getchar();
getchar(); //Não sei porque raio é que isto acontece mas só com 2 getchars é que o consigo parar!
return 0;
}
C++
#include<iostream>

using namespace std;

int main(){
int numero=1, soma=0;

while(numero!=0){
cout<<"Introduza numero com dois digitos: "<<endl;
cin>>numero;
soma+=numero;
cout<<"\nResultado parcial: "<<soma<<endl;
cout<<endl;
}
cout<<"A soma dos numeros introduzidos foi: "<<soma<<endl;
getchar();

return 0;
}
 
Última edição:
Caso ainda não saibas esse problema só acontece quando fazes isso aí, neste caso no visual. O que eu quero dizer é que se abrires a linhas de amando e executares aqui a tua aplicação ela não vai desaparecer...
 
Ah, já sei o que se passa com os getchar.
Deves ter o ficheiro com a extensão .cpp. Altera para .c no "solution explorer", aquela área à esquerda ou à direita onde podes ver as pastas e os ficheiros que compõem o projecto.
 
ya está em .CPP

Já agora qual é a diferença?

Cumps,

É que para programar em C tens de usar .c, .cpp (deve representar C Plus Plus, imagino) é para C++.
Se colocares C num .cpp o compilador também "come" o código, mas fica com uns "bugs", como por exemplo esse que tiveste.
 
Back
Topo