Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

1. Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 15:47h

#include <stdio.h>

int main(void)
{
int escolha;
float um, dois, resultado;
puts("Esta é uma calculadora básica");
puts("Nós temos algumas funções");
puts("Digite: 1 para somar, 2 para subtrair, 3 para multiplicar, 4 para dividir.");
scanf("%i", &escolha);
switch( escolha ){
case 1:
puts("Digite os dois numeros que vão ser somados");
scanf("%f %f", &um, &dois);
resultado = um+dois;
printf("O resultado é: %lf", resultado);
return 0;
case 2:
puts("Digite os dois numeros que vao realizar a conta de subtraçao :");
scanf("%f %f", &um, &dois);
resultado = um-dois;
printf("O resultado é: %lf", resultado);
return 0;
case 3:
puts("Digite os dois numeros que serao multiplicados: ");
scanf("%f %f", &um, &dois);
resultado = um*dois;
printf("O resultado é: %lf", resultado);
return 0;
case 4:
puts("Digite o dividendo e o disisor: ");
scanf("%f %f", &um, &dois);
resultado = um/dois;
printf("O resultado é: %lf", resultado);
return 0;
}
}

Fiz uma calculadora e quero salvar as saidas em um txt, como?


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 21/12/2016 - 10:13h

O problema é o modo de abertura selecionado em fopen(). O modo "w" sempre zera o conteúdo do arquivo.

Se você quiser sempre acrescentar novas informações ao final do arquivo, possivelmente você vai querer usar o modo "a".

3. resposta

gustavo borges souza marques
xupu19

(usa Kali)

Enviado em 20/12/2016 - 16:19h

depende da ferramenta que você esta usando,
se for o VIM -> aperta "ESC" e digita -> !wq ( w = salvar e q = sair) ....
se tiver usando o nano -> é "Ctrl + X" ....
se for um BLOCO DE NOTAS ou ZPAD ou algum do tipo ai tem a opção mano, poq eles temk interface grafica bem facil ....
obs: sem as aspas e quando salvar coloque o nome com .txt no final




4. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 16:20h

xupu19 escreveu:

depende da ferramenta que você esta usando,
se for o VIM -> aperta "ESC" e digita -> !wq ( w = salvar e q = sair) ....
se tiver usando o nano -> é "Ctrl + X" ....
se for um BLOCO DE NOTAS ou ZPAD ou algum do tipo ai tem a opção mano, poq eles temk interface grafica bem facil ....
obs: sem as aspas e quando salvar coloque o nome com .txt no final



Desculpa, mas releia a pergunta

"Talk is cheap, show me the code"



5. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 16:29h

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
int escolha;
float um, dois, resultado;
puts("Esta é uma calculadora básica");
puts("Nós temos algumas funções");
puts("Digite: 1 para somar, 2 para subtrair, 3 para multiplicar, 4 para dividir.");
scanf("%i", &escolha);
switch( escolha ){
case 1:
puts("Digite os dois numeros que vão ser somados");
scanf("%f %f", &um, &dois);
resultado = um+dois;
fprintf(f ,"O resultado é: %lf", resultado);
printf("O resultado é: %lf", resultado);
return 0;
case 2:
puts("Digite os dois numeros que vao realizar a conta de subtraçao :");
scanf("%f %f", &um, &dois);
resultado = um-dois;
fprintf(f ,"O resultado é: %lf", resultado);
printf("O resultado é: %lf", resultado);
return 0;
case 3:
puts("Digite os dois numeros que serao multiplicados: ");
scanf("%f %f", &um, &dois);
resultado = um*dois;
fprintf(f ,"O resultado é: %lf", resultado);
printf("O resultado é: %lf", resultado);
return 0;
case 4:
puts("Digite o dividendo e o disisor: ");
scanf("%f %f", &um, &dois);
resultado = um/dois;
fprintf(f ,"O resultado é: %lf", resultado);
printf("O resultado é: %lf", resultado);
return 0;
}
fclose(f);
}

Eu consegui fazer ele criar o txt e salvar o resultado mas quando refaço, ele apaga o resultado antigo.
"Talk is cheap, show me the code"



6. foi maus

gustavo borges souza marques
xupu19

(usa Kali)

Enviado em 20/12/2016 - 16:30h

pra salvar cria um .post e coloca o arquivo destino !!! ae tudo q digitarem vai pra vc !!! é isso ?
se num for desisto !!!


7. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 16:32h

xupu19 escreveu:

pra salvar cria um .post e coloca o arquivo destino !!! ae tudo q digitarem vai pra vc !!! é isso ?
se num for desisto !!!


Obrigado, amigo, mas nao é isso, isso aqui é um programa em C ,um calculadora, oque quero é que ele salve os resultados sem apagar os anteriores.

"Talk is cheap, show me the code"



8. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 17:05h

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int estado;
estado = 1;
FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
while( estado == 1 ){
int escolha;
float um, dois, resultado;
puts("Esta é uma calculadora básica");
puts("Nós temos algumas funções");
puts("Digite: 1 para somar, 2 para subtrair, 3 para multiplicar, 4 para dividir, 5 para sair.");
scanf("%i", &escolha);
switch( escolha ){
case 1:
puts("Digite os dois numeros que vão ser somados");
scanf("%f %f", &um, &dois);
resultado = um+dois;
fprintf(f ,"O resultado é: %lf \n", resultado);
printf("O resultado é: %lf \n\n\n\n\n", resultado);
break;
case 2:
puts("Digite os dois numeros que vao realizar a conta de subtraçao :");
scanf("%f %f", &um, &dois);
resultado = um-dois;
fprintf(f ,"O resultado é: %lf \n", resultado);
printf("O resultado é: %lf \n\n\n\n\n", resultado);
break;
case 3:
puts("Digite os dois numeros que serao multiplicados: ");
scanf("%f %f", &um, &dois);
resultado = um*dois;
fprintf(f ,"O resultado é: %lf \n", resultado);
printf("O resultado é: %lf \n\n\n\n\n", resultado);
break;
case 4:
puts("Digite o dividendo e o disisor: ");
scanf("%f %f", &um, &dois);
resultado = um/dois;
fprintf(f ,"O resultado é: %lf \n", resultado);
printf("O resultado é: %lf \n\n\n\n\n", resultado);
break;
case 5:
puts("Saindo...");
fclose(f);
return 0;

}
}

}

Fiz uma mudança agora consigo salvar mais dados mas nao consigo guardar os anteriores
"Talk is cheap, show me the code"



9. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 20/12/2016 - 18:43h

Up, ainda não resovi.
"Talk is cheap, show me the code"



10. Re: Como salvar as operaçoes feitas em um .txt? Sem apagar as anteriores [RESOLVIDO]

Marcos Souza
IUseLinux

(usa Slackware)

Enviado em 21/12/2016 - 10:38h

paulo1205 escreveu:

O problema é o modo de abertura selecionado em fopen(). O modo "w" sempre zera o conteúdo do arquivo.

Se você quiser sempre acrescentar novas informações ao final do arquivo, possivelmente você vai querer usar o modo "a".


Muito obrigado, amigo,me ajudou bastante.

"Talk is cheap, show me the code"