• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Petter Blackd

Criação de ficheiros e Console exit

10 mensagens neste tópico

Boa tarde.

Bem eu criei um programa que me realiza determinados cálculos matematicos.

Bem, uma das especificações que queria colocar era escrever o output num ficheiro .txt.

Como usei um switch, com 3 cases distintos, queria saber como posso colocar os codigos para escrever os valores no documento e quais os codigos que preciso. Por exemplo, o programa exe diz "o valor é xxx" "o outro é yyy" e queria que todos esses print f's que coloquei ficassem escritos no documento.

Como é que isso se faz?

Uma outra duvida, eu queria que, no case 3 o programa fechasse.

Antes de iniciar o ciclo swirtch criei um print f a perguntar a opçao do menu e o respectivo scan f para fixar a opçao. (as opçao sao numeros). Caso o numero marcado seja 3, fechar programa.

Utilizando o código,

case 3:

exit (0);

break;

o compilador (VS 2008) diz que nao reconhece o exit.

Alguem me pode dar uma ajuda?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias mostrar um pouco mais de código, para podermos ver o que já tens feito e te podermos ajudar melhor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

printf ("\nIndique a sua escolha:");

scanf_s ("%d", &escolha);

switch (escolha)

{

  case 1:

  printf ("\n\n\nVALORES DO grau");

  printf ("\nValor exacto =");

  printf ("\nValor aproximado =");

 

  printf ("\n\n\nVALORES DO angulo",n);

  printf ("\nValor exacto  = ");

  printf ("\nValor aproximado  =");

 

  main ();

  break;

  case 3:  

  return 0;// mas nao fecha o programa :S

}

}

aqui esta parte do codigo.

espero que ajude

@TheDark

estudas no isel?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para reconhecer o exit tens de fazer #include <stdlib.h>.

Essa invocação da main() aí no meio está errada, a main não se invoca em nenhuma função, ela é o ponto de entrada na execução do programa, apenas o SO a invoca, mais ninguém.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas uma das especificações do trabalho que tenho de fazer é, depois de realizar todas as tarefas ele volte ao inicio.

Durante as minhas aulas, foi a unica maneira que aprendi.

Entao, como posso fazer para voltar ao inicio

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uau. Algo de errado se passa com essas aulas, se te ensinaram a chamar a função main a partir de outras funções... Diz-me por favor que não te ensinaram isso no ISEL ::) era caso para fazer um report ao Eng. Pedro Pereira. E sim, estudo lá :) conto terminar este ano.

Para voltares ao início, a maneira habitual é meteres o código dentro de um ciclo. Por exemplo, se esse código que mostraste estiver dentro de uma função, é fazer algo do tipo

while (true) {
    mostrar_valores();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema é que nao estou em nenhum curso de informatica e nunca tive programação na vida. :s

Tipo, coloquei a minha função main, e dentro dessa coloquei um ciclo switch. Mas o que meto nesse codigo para me voltar ao main? Ja tentei substituir o mostrar_valores por int main mas nao resulta xD Provavelmente nao e assim haha

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mostrar_valores será o nome da função que contém o código que puseste aí. Sem ver como tens isso estruturado é difícil ser mais específico.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main ()
{
   int x,p,t,o;
   
FILE *trabalho;
trabalho = fopen ("c:\\Documents and Settings\\Trabalho.txt","w+");

(uns qnts print f para o menu)

printf ("\nIndique a sua escolha:");
      scanf_s ("%d", &escolha);
      
      switch (escolha)
      {
         case 1:

        fprintf (trabalho, "1234 lalala");
         
            printf ("\n\n\n valores do grau");

            printf ("\nValor exacto =");
            printf ("\nValor aredondado =");
          

                  
            main ();
         break;

case 3:
return 0;
}
}

Basicamente é isto que tenho. Um dos problemas que agora estou a deparar-me é que o programa cria o ficheiro txt. mas não lhe escreve absolutamente nada. Ja reparei que o problema é por estar dentro do switch, mas preciso de colocar os valores e as respectivas msg do case 1 num documento txt.  Ja andei a ler montes de coisas mas nao consigo.

O caso 3 é o suposto close console.

O codigo esta ai postado quase na sua integra, somente fiz a remoçao de alguns print's para poupar espaço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se meteres tudo o que está a seguir à linha do fopen dentro de um while (true) { ... }, e removeres a chamada à função main, deves obter o que pretendes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora