Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linguagem de Programao
Aula 13 Linguagem de
Programao C Arquivos
(Resumo)
1. abrir o arquivo;
2. ler e/ou gravar os dados desejados;
3. fechar o arquivo..
Resumo - Arquivos em C
Declarao da varivel
FILE *variavel;
Abrir o arquivo
variavel =
fopen(nome_arquivo,modo);
Fechar o arquivo
Resumo - Arquivos em C
Funes de escrita e gravao
fputc: Grava um nico caracter no arquivo
Ex.:
fscanf(arq,%d %c,&num,&letra);
Ex:
fprintf(arq,%d %c,num,letra);
Exemplo: lendo e gravando
arquivo de texto
- Faa um programa em C que apresente um
menu de opes: 1 Ler nome 2- Listar
nomes 3-Sair. Na opo 1 deve ser lido um
nome de pessoa e gravado num arquivo. Na
opo 2 deve ser lido os nomes gravados no
arquivo e enviados para um vetor de nomes.
Exemplo: lendo e gravando
arquivo de texto
#include <stdio.h>
FILE *arq;
void lernome()
{
char nome[35];
printf("Digite um nome");
fflush(stdin);
gets(nome);
fprintf(arq,"%s \n",nome);
}
Exemplo: lendo e gravando
arquivo de texto
void escrevernomes()
{
char nomes[100][35];
int i=0,x;
rewind(arq);
while(!feof(arq))
{
fscanf(arq,"%s",nomes[i]);
i++;
}
for(x=0;x<i;x++)
{
printf("\n %s",nomes[x]);
}
}
Exemplo: lendo e gravando
arquivo de texto
int main()
{
int op;
arq=fopen("nomes.txt","a+");
if (arq==NULL)
printf("Erro ao abrir o arquivo");
do {
printf("\n Escolha sua opo: 1- Ler nome 2 - Listar 3 - Sair");
scanf("%d",&op);
switch(op) {
case 1:
lernome();
break;
case 2:
escrevernomes(); }
}
while(op!=3);
fclose(arq);
}
Exemplo: lendo e gravando
arquivos binrios (registros)
- Ler dados formatados de um arquivo:
fwrite(estrutura, tamanho, nroregistros, arquivo);
Ex.:
fwrite(&aluno,sizeof(aluno),1,arq);
Ex.:
fread(&aluno,sizeof(aluno),1,arq);
Exemplo
1 Declarar a estrutura e a varivel ponteiro para o arquivo:
#include <stdio.h>
struct dados{
char nome[30];
int idade;
} aluno;
FILE *arq;
Exemplo
2 Na funo main, inicia-se abrindo o arquivo. Neste processo,
associa-se a varivel definida anteriormente a um arquivo fsico
no disco. Escolhe-se tambm o modo de abertura do arquivo.
Se retornar NULL ocorreu um erro neste processo.
int main()
{
int x;
else
{
printf("Informe o nome do aluno: \n");
gets(aluno.nome);
printf("Informe a idade do aluno: \n");
scanf("%d",&aluno.idade);
x = fwrite(&aluno,sizeof(aluno),1,arq);
if (x==1)
printf("Dados gravados com sucesso.\n");
else
printf("Erro na gravao. \n");
}
Exemplo
4 Aps, para escrever os dados gravados no arquivo, deve-se voltar
para o incio do mesmo com o rewind, e fazer um loop enquanto no
chegar ao final do arquivo, para a leitura dos dados.
rewind(arq);
while(!feof(arq))
{
fread(&aluno,sizeof(aluno),1,arq);
printf("Nome: %s\n",aluno.nome);
printf("Idade: %d\n",aluno.idade);
}
fclose (arq);
return 0;
}