Curso de C

Lendo e Escrevendo Caracteres em Arquivos


putc

Toda vez que estamos trabalhando com arquivos, há uma espécie de posição atual no arquivo. Esta posição, gerenciada pelo compilador, é a posição de onde será lido ou escrito o próximo caracter. Normalmente, num acesso sequencial a um arquivo, não temos que mexer nesta posição pois quando lemos um caractere a posição no arquivo é automaticamente atualizada. Num acesso randômico teremos que mexer nesta posição (ver fseek()). Protótipo:

                int putc (int ch,FILE *fp);

Escreve um caracter no arquivo.

getc

Retorna um caracter lido do arquivo. Protótipo:

                int getc (FILE *fp);

feof

EOF ("End of file") indica o fim de um arquivo. Às vezes, é necessário verificar se um arquivo chegou ao fim. Para isto podemos usar a função feof(). Ela retorna não-zero se o arquivo chegou ao EOF, caso contrário retorna zero. Seu protótipo é:

                int feof (FILE *fp);

A seguir é apresentado um programa onde várias operações com arquivos são realizadas. Primeiro o arquivo é aberto para a escrita, e imprime-se algo nele. Em seguida, o arquivo é fechado e novamente aberto para a leitura. Verifique o exemplo.

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

void main()
{
FILE *p;
char c, str[30], frase[80] = "Este e um arquivo chamado: ";
int i;
/* Le um nome para o arquivo a ser aberto: */
printf("\n\n Entre com um nome para o arquivo:\n");
gets(str);

if (!(p = fopen(str,"w")))  /* Caso ocorra algum erro na abertura do arquivo..*/ 
  {                         /* o programa aborta automaticamente */
  printf("Erro! Impossivel abrir o arquivo!\n");
  exit(1);
  }
/* Se nao houve erro, imprime no arquivo, fecha ...*/
strcat(frase, str);
for (i=0; frase[i]; i++)
  putc(frase[i],p);
fclose(p);

/* abre novamente para a leitura e fecha. */
p = fopen(str,"r");
while (!feof(p))
 {
  c = getc(p);
  printf("%c",c);
  }
fclose(p);
}


    P

Dúvidas? De uma olhadinha em nossoFAQ

Perguntas para a lista do Curso de C