e armazena numa variável membro de uma struct.
Note que tanto a struct como sua variável foram
alocadas dinâmicamente.
No teste usei um arquivo de mais de 18000 linhas,
mas isto pod ser expandido grandemente até a memória
máxima do sistema, o que não é recomendado.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
//Lendo um arquivo e copiando num
membro de uma struct
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define SIZE 18195
typedef struct harpa {
char **nome;
} harpa_crista;
int main ( ) {
FILE*arq;
int i = 0, c = 0;
harpa_crista *pt;
//abaixo alocando memória para a struct
pt = ( harpa_crista* ) malloc ( SIZE *sizeof ( harpa_crista ) );
arq = fopen ( "Harpa cristã.txt","r" );
if ( arq == NULL ) {
textcolor ( YELLOW );
gotoxy ( 26,12 );
printf("Problemas na
abertura do arquivo ");
getche ( );
return ( 0 );
}
//abaixo alocando memória para a variável da
struct
pt -> nome = ( char** ) malloc ( SIZE *sizeof ( char* ) );
while ( feof ( arq ) == 0 ){
pt -> nome [ c ] = ( char* ) malloc ( SIZE *sizeof ( char ) );
fgets ( pt -> nome [ c ], 80, arq );
++c;
}
printf("\n\n");
c = 1;
for ( i = 0; i < SIZE; i++ ) {
printf("%d", c++ );
printf(" %s ", pt -> nome [ i ] );
}
getche ( );
free ( pt );
free ( pt -> nome );
return ( 0 );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.