quinta-feira, 15 de outubro de 2015

Arquivo - leitura com fgets

Aém de fscanf(); que usamos para leitura de textos num arquivo
também podemos usar a função fgets(); A função fgets();
lê uma linha inteira de uma vez, ou até que um '\n' tenha sido encontrado.
O endereço da string lida, é retornado se a leitura foi realizada corretamente,
ou o retorno NULL se a leitura fracassou.
Considere como certo a seguinte sintaxe para fegets();
char *fgets ( char *minhaString, int numBytes, FILE *arq );
Vale lembrar que estas duas funções que foram citadas acima, são da biblioteca
padrão do c, stdio.h.
Neste tópico trago um bom exemplo de leitura de arquivos usando fgets();
A matriz onde armazenamos nosso texto lido do arquivo foi alocada dinamicamente,
e liberada após o uso, pela funçõa free(); Note que isto é uma obrigação
nossa, já que somos futuros bons programadores em linguagem c.

Na imagem abaixo, temos o nosso arquivo de texto utilizado:


Acompanhe abaixo uma imagem do programa em execução:


Veja abaixo o código do programa:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define SI_ZE 65
void Moldura ( ) {
     int c;
     textbackground ( WHITE );
     gotoxy ( 1 , 1 );
     for ( c = 0; c < 255 ; c++ ) {
         printf ( " " );
     }
     gotoxy ( 1 , 25 );
     for ( c = 1; c < 87 ; c++ ) {
         printf ( " " );
     }
}
int main ( ) {
     system ( "title ARQUIVO - LEITURA COM FGETS" );
     int c, i;
     char **line;
     line = ( char** ) malloc ( SI_ZE * sizeof(char*) );
     FILE *arq = fopen ( "Classificação.txt" , "r" );
     if ( arq == NULL ) {
         textcolor ( YELLOW );
         gotoxy ( 26 , 12 );
         printf ( "Problemas na abertura do arquivo " );
         getche ( );
         return ( 0 );
     }
     if ( arq != NULL ) {
         textcolor ( WHITE );
         for ( i = 0; i < 9 ; i++ ) {
              line [ i ] = ( char* ) malloc ( SI_ZE * sizeof(char*) );
              fgets ( line [ i ] , 160 , arq );
         }
         Moldura ( );
         textbackground ( BLACK );
         textcolor ( LIGHTRED );
         gotoxy ( 32 , 5 );
         printf ( "ARQUIVO - LEITURA COM FGETS" );
         for ( i = 0; i < 9 ; i++ ) {
              c = i;
              textcolor ( LIGHTRED );
              gotoxy ( 1 , i + 7 );
              textcolor ( LIGHTBLUE );
              printf ( "%s" , line [ i ] );
         }
         fclose ( arq );
     } else {
         printf ( "Nao foi possível abrir o arquivo." );
         getche ( );
         return 0;
     }
     textcolor ( LIGHTBLUE );
     gotoxy ( 17 , 17 );
     printf ( "Por: " );
     textcolor ( LIGHTMAGENTA );
     printf ( "Samuel Lima" );
     textcolor ( BLACK );
     gotoxy ( 17 , 19 );
     printf ( "sa_sp10@hotmail.com" );
     Sleep ( 1800 );
     textcolor ( LIGHTRED );
     gotoxy ( 37 , 20 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
     exit ( 0 );
     free ( line );
     return 0;
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.