Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Uma estrutura (struct) é uma coleção de campos que podem ser referenciados pelo mesmo nome. A estrutura permite que informações de tipos diferentes e relacionadas mantenham-se juntas. Exemplo struct pessoa { char nome[30]; char rua[50]; int idade; } cliente; /* criação da struct pessoa e declaração da variável cliente do tipo struct pessoa*/ Linguagem C: Struct e FILE IESB APC Usando ponteiro do tipo struct struct ponto { int x; int y; } meu_ponto; struct ponto *p = &meu_ponto; /*Declara p como um ponteiro do tipo struct ponto*/ (*p).x = 8; /*Acessa o primeiro membro da estrutura */ p->x = 8; /*Outro modo de acessar o primeiro membro da estrutura*/ Linguagem C: Struct e FILE IESB APC Declaração da variável funcionario do tipo struct pessoa struct pessoa funcionario; Outro exemplo: struct endereco { char rua [50]; int numero; char bairro [21]; char cidade [31]; char sigla_estado [3]; long int CEP; }; Linguagem C: Struct e FILE IESB APC #include <stdio.h> #include <stdlib.h> struct pessoa { char *nome; int idade; }; int main() { // declara uma variável do tipo struct struct pessoa cliente; cliente.nome = "Osmar J. Silva"; cliente.idade = 36; printf("O nome do cliente e: %s\n", cliente.nome); printf("A idade do cliente e: %d\n", cliente.idade); printf("\n\n"); system("PAUSE"); return 0; } Linguagem C: Struct e FILE IESB APC Dois tipos de arquivos (FILE): Arquivo texto - O conteúdo é baseado é uma seqüência de caracteres que formam linhas determinadas por um caracter de nova linha ( “ \ n ”). Arquivos binários – O conteúdo baseado em uma estrutura ou dado que respeita um determinado tipo de dado. Este tipo de dado pode ser um tipo simples (int, float, char) ou um tipo estruturado como registro (struct). Visualização de um arquivo binário (exemplo) Nome Telefone idade Maria 45545 21 João 87878 30 Paula 78867 22 José 565675 20 ... ... ... Linguagem C: Struct e FILE IESB APC Declaração de FILE FILE *fp; é o nome da estrutura (tipo de dado) O * define que a variável fp é uma variável do tipo ponteiro para FILE. Abertura de um arquivo texto main ( ) { FILE *fp; fp = fopen (“teste.txt”, “w”) //W é o modo como arquivo será aberto } OU main ( ) { FILE *fp; if ((fp = fopen (“teste.txt”, “w”) = = null) { printf (“o arquivo não pode ser aberto \ n”); return 0; } } Linguagem C: Struct e FILE IESB APC MODO / SIGNIFICADO r - Abre um arquivo texto para leitura w - Cria um arquivo texto para escrita ou sobrescreve caso o arquivo exista a - Anexa a um arquivo texto: abre para escrita no final do arquivo texto ou cria um novo arquivo caso o mesmo não exista rb - Abre um arquivo binário para leitura wb - Cria um arquivo binário para escrita ab - Abre um arquivo binário para escrita no final do arquivo ou cria um novo caso o mesmo não exista r+ - Abre um arquivo texto para leitura e escrita w+ - Cria um arquivo texto p/ leitura e escrita ou sobrescreve caso o arquivo já exista a+ - Abre um arquivo e cria um novo para leitura e escrita no final do arquivo r + b - Abre um arquivo binário para leitura/escrita w + b - Cria um arquivo binário para leitura/escrita a + b - Abre um arquivo binário para leitura e escrita no final do mesmo Linguagem C: Struct e FILE IESB APC Exemplo de criação, abertura e fechamento de arquivo #include <stdio.h> int main() { FILE *fp; //Criação fp = fopen (“LEIAME", "w"); //Abertura if (fp == NULL) { printf ("Houve um erro ao abrir o arquivo.\n"); return 1; } printf ("Arquivo LEIAME criado com sucesso.\n"); fclose (fp); //Fechamento return 0; } Linguagem C: Struct e FILE IESB APC Lendo e escrevendo caracteres em arquivos #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; char string[100]; int i; fp = fopen("arquivo.txt","w"); /* Arquivo ASCII, para escrita */ if(fp==0) { printf( "Erro na abertura do arquivo"); exit(0); } printf("Entre com a string a ser gravada no arquivo:"); gets(string); for(i=0; string[i]; i++) putc(string[i], fp); /* Grava a string, caractere a caractere */ fclose(fp); return 0; } Linguagem C: Struct e FILE IESB APC #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; char c; fp = fopen("arquivo.txt","r"); /* Arquivo ASCII, para leitura */ if(fp==0) { printf( "Erro na abertura do arquivo"); exit(0); } while((c = getc(fp) ) != EOF) /* Lê enquanto não chegar ao final do arquivo */ printf("%c", c); /* Escreve o caracter lido */ fclose(fp); return 0; } Linguagem C: Struct e FILE IESB APC #include <stdlib.h> int main() { char s[80]; FILE *arq; arq = fopen( “teste.txt”, “w” ); if( arq == NULL ){ printf(“o arquivo não pode ser aberto” ); exit(1);} do { printf(“Entre com uma string (enter para sair): \n”); gets( s ); strcat( s, “\n” ); //Coloca final de string para poder ser lido fputs( s, arq );} while( *s != ‘\n’); return( 0 ); } Linguagem C: Struct e FILE IESB APC
Compartilhar