1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

manter a linha de comandos aberta

Discussão em 'Programação' iniciada por Garnett, 15 de Dezembro de 2007. (Respostas: 10; Visualizações: 1696)

  1. 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: 30 de Abril de 2009
  2. RS

    RS Power Member



    Acho que o pessoal costuma usar, em vez do system("pause"), um getChar() em C .... penso que no C++ seja semelhante :)
     
  3. mj2p

    mj2p I'm Cool Cuz I Fold



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

    Vá, cumps
     
  4. é só vc incluir <stdlib.h> ,,,resolvido seu problema.....flw
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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.
     
  6. OubeLa

    OubeLa Power Member

  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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
     
  8. Psycop

    Psycop I fold therefore I AM

    Para manter a linha de comandos aberta podes usar o seguinte:

    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
     
  9. Chaosweaver

    Chaosweaver [email protected] Member

    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: 1 de Maio de 2009
  10. OubeLa

    OubeLa Power Member

    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.
     
  11. Ronnie_03

    Ronnie_03 Power Member

    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
     

Partilhar esta Página