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

mellony

puts e fputs

12 mensagens neste tópico

Queria que ele escreve num ficheiro mas que deixa-se sempre uma linha, só que se nao meter fputs dá erro ou seja com o puts dá erro...porque sera e como resolver este problema?

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

main()
{
    FILE *fp1, *fp2;
    int contador=0;
    char frase1[200];
    //char frase2[200];
    char frase[200];
    fp1 = fopen("ficheiro1.txt","a+");
    fp2 = fopen("ficheiro2.txt","a+");



  
printf("ola, bem vindo ao prototipo numero 2\n\n");
gets(frase);


   fgets(frase1,200,fp1);
   
   
              
   if (strcmp(frase,frase1)==0)
      printf("\nboa\n\n");
   else
       printf("\nerro\n\n");
       
       
       fputs(frase,fp2);    //aqui está o problema!!!
              
        
    
    
    
    
    
    fclose(fp1);
    fclose(fp2);

system("pause");

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dá erro ao usar o puts porque o puts não é para escrever em ficheiros (ou melhor, o ficheiro em que escreve por defeito é aquele que está associado ao monitor - stdout - , e para o alterar seria preciso redireccionar o output do puts), para isso usa-se o fputs (file puts).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E como é que faço para que ele em vez de escrever no final do ficheiro escreva na linha seguinte à ultima linha escrita?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o problema for o facto de ele deixar uma linha em branco entre cada frase, experimenta usar o fprintf. (fputs = fprintf + "\n").

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é:

Eu uso o programa uma vez e fica por exemplo a frase...

"O gato é preto."

e se usar novamente o programa fica..

"O gato é preto.O cão é branco."

em fez de:

"O gato é preto.

O cão é branco."

Tão a perceber a ideia?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

com o fprintf nao escreve no ficheiro e o programa fecha logo.

Olhem será que o problema esta na maneira como abro os ficheiros..eu acho que o mais indicado é a+, o que acham?

O meu objectivo para cada ficheiro é poder ler e escrever e sempre que escrever ele escrever na linha seguinte a ultima ocupada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta escreveres um "\n" (caracter de mudança de linha) sempre que escreves uma frase.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E como é que eu faço isso? ..se fosse printf eu metia lá o \n

mas é com o fputs...assim nao sei como é :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e no meio disso onde é que coloco a variavel(acho que é assim que se chama) "frase" ?

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