quarta-feira, 18 de maio de 2016

Arquivo - leitura por fscanf

Sempre que um arquivo é aberto, podemos escolher pelo menos três maneiras  para lê
os seus dados que são: Caracter por caracter através das funções fgetc() e fputc(); da biblioteca padrão ou uma string de cada vez pelas funções fgets() e fputs(); , ou especificando um formato através das funções fscanf() e fprintf().
Neste exemplo simples de leitura de um arquivo usei fscanf(); para fazer a leitura
completa do arquivo, com um macete muito usado por programadores em C, onde se
permite que fscanf(); idem scanf(); lê strings com espaços.
Num próximo exemplo vou mostrar como especificar a leitura por tipos separados.

Veja esta imagem abaixo:




Abaixo está o código do programa:



#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/*
     jogos          Valor          Probabilidade de acerto ( 1 em )

                                       Sena         Quina      Quadra

          6            3.50        50063.860       154.518      2.332
          7           24.50         7151.980        44.981      1.038
          8           98.00         1787.995        17.192        539
          9          294.00          595.998         7.791        312
          10         735.00          238.399         3.973        195
          11        1617.00          108.363         2.211        129
          12        3234.00           54.182         1.317         90
          13        6006.00           29.175           828         65
          14       10510.50           16.671           544         48
          15       17517.50           10.003           370         37
 */
int main ( ) {
     system ( "title ARQUIVO - LEITURA POR FSCANF" );
     FILE *arq;
     int j = 0, k;
     char Nome [ 50 ];
     if ( ( arq = fopen (
              "C:\\Users\\SAMUEL 64SP1\\Desktop\\Arquivos\\Megasena.txt" , "r" ) )
              == NULL ) {
         printf ( "Houve um erro na abertura do arquivo" );
         getche ( );
         exit ( 1 );
     }
     textcolor ( LIGHTRED );
     gotoxy ( 30 , 3 );
     printf ( "ARQUIVO - LEITURA POR FSCANF" );
     textcolor ( WHITE );
     gotoxy ( 21 , 5 );
     printf ( "Abaixo os dados que foram lidos do arquivo" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 5 , 7 );
     k = 0;
     while ( k < 10 ) {
         k++;
         fscanf ( arq , "%85[^;]" , &Nome [ j ] );
         printf ( "%s" , Nome );
         Sleep ( 80 );
         if ( k == 10 ) {
              fclose ( arq );
              Sleep ( 1800 );
              textcolor ( LIGHTBLUE );
              gotoxy ( 10 , 22 );
              printf ( "Por: " );
              textcolor ( LIGHTMAGENTA );
              printf ( "Samuel Lima" );
              textcolor ( WHITE );
              gotoxy ( 10 , 23 );
              printf ( "sa_sp10@hotmail.com" );
              Sleep ( 1800 );
              textcolor ( LIGHTRED );
              gotoxy ( 36 , 24 );
              printf ( "MUITO OBRIGADO" );
              getch ( );
              exit ( 0 );
         }
     }while ( j < 10 );
}

Nenhum comentário:

Postar um comentário

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