manter a linha de comandos aberta

Garnett

Membro
bem uso o DEV-c++ e tenho este prog mas kuando eu o executo a janela da linha de comandos aparece e desaparece rapidamente ja usei o system("pause")
mas parece k aki n funcione alguem sabe pk.

Código:
#include <iostream>
#include <fstream>
int main() {
  const int DIM = 10; // O ficheiro tem 10 numeros
  int tab[DIM];
  std::ifstream leitura("numeros.dat"); // Ou "numlin.dat"
if (leitura.fail()) // Se não abriu
  return(1) ; // Termina com erro
else // Le ficheiro
  for (int i = 0; i < DIM ; ++i)
    leitura >> tab[i];
leitura.close();
std::cout << "\n";
for (int i = 0; i < DIM-1; ++i)
  std::cout << tab[i] << ", ";
std::cout << tab[DIM-1] << std::endl;;

system("pause");
return 0;

}
 
Última edição pelo moderador:
bem uso o DEV-c++ e tenho este prog mas kuando eu o executo a janela da linha de comandos aparece e desaparece rapidamente ja usei o system("pause")
mas parece k aki n funcione alguem sabe pk.


#include <iostream>
#include <fstream>
int main() {
const int DIM = 10; // O ficheiro tem 10 numeros
int tab[DIM];
std::ifstream leitura("numeros.dat"); // Ou "numlin.dat"
if (leitura.fail()) // Se não abriu
return(1) ; // Termina com erro
else // Le ficheiro
for (int i = 0; i < DIM ; ++i)
leitura >> tab;
leitura.close();
std::cout << "\n";
for (int i = 0; i < DIM-1; ++i)
std::cout << tab << ", ";
std::cout << tab[DIM-1] << std::endl;;

system("pause");
return 0;

}


Acho que o pessoal costuma usar, em vez do system("pause"), um getChar() em C .... penso que no C++ seja semelhante :)
 
bem uso o DEV-c++ e tenho este prog mas kuando eu o executo a janela da linha de comandos aparece e desaparece rapidamente ja usei o system("pause")
mas parece k aki n funcione alguem sabe pk.


#include <iostream>
#include <fstream>
int main() {
const int DIM = 10; // O ficheiro tem 10 numeros
int tab[DIM];
std::ifstream leitura("numeros.dat"); // Ou "numlin.dat"
if (leitura.fail()) // Se não abriu
return(1) ; // Termina com erro
else // Le ficheiro
for (int i = 0; i < DIM ; ++i)
leitura >> tab;
leitura.close();
std::cout << "\n";
for (int i = 0; i < DIM-1; ++i)
std::cout << tab << ", ";
std::cout << tab[DIM-1] << std::endl;;

system("pause");
return 0;

}


Usa, em vez de system("pause"), cin.get() (incluido em iostream).

Vá, cumps
 
O ideal é correr o programa logo na linha de comandos. Quando estou em Windows, quer use o Dev-C++ quer use o Notepad++ e o gcc, executo sempre o programa pela linha de comandos.
A minha alternativa antes era pôr um fflush(stdin); getchar(); mas isso, a ser usado, é um desenrasque para ser apagado assim que possível.

Em relação ao fflush, lê este tópico, nomeadamente o post do Baderous, com os motivos pelos quais não se deve usar.
 
Eu sei, repara na nota final do meu post :P mencionei o fflush simplesmente porque é melhor saberem que existe e que não deve ser usado, do que não saberem e mais tarde "descobrirem"-no.

Só recentemente ( => desde o início deste semestre) é que tenho começado a aprender a sério C, e deixei de precisar desse tipo de desenrasques depois de ter passado a usar a linha de comandos :P
 
Para manter a linha de comandos aberta podes usar o seguinte:

cin.get()
cin.get()

Colocas isto antes do return 0 e a linha de comandos fica aberta até que tocares numa tecla após teres executado todas as funções...

Cumps
 
Psycop, porque introduzes dois "cin.get()"? Um basta para o efeito!

De qualquer maneira, não sei se já repararam mas a única dúvida colocada aqui foi por um user que já cá não mete os pés há um ano!

markim1974, cuidado com as datas!
 
Última edição:
Eu sei, repara na nota final do meu post :P mencionei o fflush simplesmente porque é melhor saberem que existe e que não deve ser usado, do que não saberem e mais tarde "descobrirem"-no.

Só recentemente ( => desde o início deste semestre) é que tenho começado a aprender a sério C, e deixei de precisar desse tipo de desenrasques depois de ter passado a usar a linha de comandos :P

Sorry, é o que dá ler as coisas a correr :D eu penso que o setbuf ou o setvbuf fazem o efeito pretendido, mas ainda não consegui encontrar uma maneira prática de o fazer.
 
Psycop, porque introduzes dois "cin.get()"? Um basta para o efeito!

Neste caso de facto um finciona e se acrescentares 2 vais ter de primir enter duas vezes, mas há alturas em que tens mesmo de introduzir 2 cin.get(). Um exemplo disso é quando usas o cin, porque para introduzires um valor pelo teclado tens de primir enter e esse enter vai ficar no buffer de entrada. O que fazes para resolver isso é colocar um cin.get() que te lê esse enter e depois outro para fazer o programa esperar até primires enter.


Cumps
 
Back
Topo