Beuleal 4 Denunciar post Postado Julho 23, 2011 Olá amigos, eu ja programo em outras linguagens, porem estou começando a mexer em c++ e estou com um probleminha básico no loop. Estou usando o system("cls"); para limpar a tela, porem nem esta dando tempo de ver o resultado da conta. ^^ Olhem o código #include <iostream> #include <windows.h> //para gotoxy using namespace std; #define PI 3.14159 void gotoxy(int coluna, int linha) { COORD point; point.X = coluna; point.Y = linha; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point); } int main(){ int op; int sair, numero1, numero2, soma, subt, divi, mult, circulo; //while (op != 0){ gotoxy(30,1); cout << "###==--| Caluladora 1.0 |--==### \n\n\###==--| Menu Principal |--==### \n\n "; cout << "[1] - Soma \n [2] - Subtracao \n [3] - Divisao \n [4] - Multiplicacao \n [5] - Calculo de Circunferencia \n [0] - SAIR"; cout << "\n\nDigite uma opcao e precione [ENTER]: "; cin >> op; switch (op) { case 1: cout << "\n ------> Voce escolheu SOMA\n"; cout << "\n Digite um numero: "; cin >> numero1; cout << "\n Digite um outro numero: "; cin >> numero2; soma = numero1 + numero2; cout << "\n O resultado e " << soma << "\n "; cout << soma << " = " << numero1 << " + " << numero2; getchar(); break; default : cout << "Entrada invalida"; getchar (); //}// fecha op } getchar(); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Julho 24, 2011 Qual sua dúvida? Compartilhar este post Link para o post Compartilhar em outros sites
Beuleal 4 Denunciar post Postado Julho 25, 2011 Se você rodar ele, verá q esta voltando ao menu e sobrepondo o que ja esta escrito ficando assi: Digite um numero:2 Digite um outroo numero:3 Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Julho 31, 2011 Não entendi '-' Não era pra exatamente isso acontecer? cout << "\n ------> Voce escolheu SOMA\n"; cout << "\n Digite um numero: "; cin >> numero1; cout << "\n Digite um outro numero: "; cin >> numero2; soma = numero1 + numero2; Até onde vejo, isso devia acontecer mesmo, não? Compartilhar este post Link para o post Compartilhar em outros sites
Beuleal 4 Denunciar post Postado Julho 31, 2011 olha, retire esses dois comentarios e torne-os ativos //while (op != 0){ //}// fecha op ficando: while (op != 0){ }// fecha op E verá que nao dará tempo de ver o resultado e ja mostrará o menu. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Agosto 1, 2011 Ah sim, isso é porque o std::cin deixa sugeira no buffer de entrada. Quando você chama getchar(), ele pega sugeira ao invés do input do usuário. Tente após cada cin utilizar std::cin.flush ou std::cin.clear (não lembro qual função que era). Isso vai resolver o problema na hora de usar o getchar(). Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
Beuleal 4 Denunciar post Postado Agosto 2, 2011 esta aparecendo : "invalid use of member" o codigo ficou assim #include <iostream> #include <windows.h> //para gotoxy using namespace std; #define PI 3.14159 void gotoxy(int coluna, int linha) { COORD point; point.X = coluna; point.Y = linha; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point); } int main(){ int op; int sair, numero1, numero2, soma, subt, divi, mult, circulo; while (op != 0){ gotoxy(30,1); cout << "###==--| Caluladora 1.0 |--==### \n\n\###==--| Menu Principal |--==### \n\n "; cout << "[1] - Soma \n [2] - Subtracao \n [3] - Divisao \n [4] - Multiplicacao \n [5] - Calculo de Circunferencia \n [0] - SAIR"; cout << "\n\nDigite uma opcao e precione [ENTER]: "; cin.flush >> op; switch (op) { case 1: cout << "\n ------> Voce escolheu SOMA\n"; cout << "\n Digite um numero: "; cin >> numero1; cout << "\n Digite um outro numero: "; cin >> numero2; soma = numero1 + numero2; cout << "\n O resultado e " << soma << "\n "; cout << soma << " = " << numero1 << " + " << numero2; getchar(); break; default : cout << "Entrada invalida"; getchar (); }// fecha op } getchar(); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Agosto 3, 2011 Não não... você usa isso para limpar o buffer depois de chamar o cin... Aí ficaria o seguinte: #include <iostream> #include <windows.h> //para gotoxy using namespace std; #define PI 3.14159 void gotoxy(int coluna, int linha) { COORD point; point.X = coluna; point.Y = linha; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point); } int main(){ int op; int sair, numero1, numero2, soma, subt, divi, mult, circulo; while (op != 0){ gotoxy(30,1); cout << "###==--| Caluladora 1.0 |--==### \n\n\###==--| Menu Principal |--==### \n\n "; cout << "[1] - Soma \n [2] - Subtracao \n [3] - Divisao \n [4] - Multiplicacao \n [5] - Calculo de Circunferencia \n [0] - SAIR"; cout << "\n\nDigite uma opcao e precione [ENTER]: "; cin >> op >> flush; switch (op) { case 1: cout << "\n ------> Voce escolheu SOMA\n"; cout << "\n Digite um numero: "; cin >> numero1 >> flush; cout << "\n Digite um outro numero: "; cin >> numero2 >> flush; soma = numero1 + numero2; cout << "\n O resultado e " << soma << "\n "; cout << soma << " = " << numero1 << " + " << numero2; getchar(); break; default : cout << "Entrada invalida"; getchar (); }// fecha op } getchar(); return 0; } Olha se dá certo... Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
Beuleal 4 Denunciar post Postado Agosto 3, 2011 Ainda não esta funcionando... tentei colocar clear e mesmo assim nao funcionou. Já tentei colocar no inicio um system("cls") mas nao dá nem tempo de ver o resultado e já limpa a tela Compartilhar este post Link para o post Compartilhar em outros sites