Como ler a entrada de um arquivo em C

Como ler a entrada de um arquivo em C
As informações serão perdidas assim que um programa terminar. Quando salvarmos os dados em um arquivo, eles serão mantidos, embora o programa trava. Se muitos dados para inserir, isso exigiria mais tempo para fazer. Mas, se tivermos um arquivo que inclua todo o conteúdo, a recuperaríamos rapidamente usando algumas funções C. Vamos transferir diretamente o arquivo de um dispositivo para o outro sem modificações.

Existem dois tipos de arquivos: texto e binário. Os arquivos de texto são aqueles com a extensão .TXT. Esses arquivos são simples de fazer. Quando acessarmos esses arquivos, obteremos um texto claro para todas as informações. Os dados podem ser simplesmente modificados ou excluídos. A extensão .bin indica um arquivo binário. Em vez de reter informações em texto claro, eles fazem isso em números binários (0s e 1s).

Vamos discutir em detalhes as várias abordagens sobre como ler o conteúdo de um arquivo.

Usando a função fseek () para ler a entrada do arquivo

Se tivermos um grande número de entradas em um arquivo e queremos recuperá -las uma a uma em uma posição específica, devemos iterar em todos os itens antes disso. Consumiria uma quantidade significativa de memória e tempo de processamento. Através da função fseek (), podemos obter as informações necessárias com mais eficiência.

#incluir
#incluir
estrutura thrNumber

int num1, num2, num3;
;
int main ()

int n;
struct thrNumber Number;
Arquivo *fptr;
if ((fptr = fopen ("file_1.txt "," r ")) == null)
printf ("arquivo não pode abrir");
saída (1);

fseek (fptr, -Sizeof (struct ThrNumber), Seek_end);
para (n = 1; n < 5; ++n)

fret (& número, sizeof (struct thrNumber), 1, fptr);
printf ("n1: %d \ tn2: %d \ tn3: %d \ n", número.num1, número.num2, número.num3);
fseek (fptr, -2*sizeof (struct thrNumber), seek_cur);

fclose (FPTR);
retornar 0;

Aqui vamos iniciar o programa integrando os arquivos de cabeçalho necessários #include e #include . Agora criamos uma função e, em seguida, três variáveis ​​diferentes são inicializadas. Essas variáveis ​​têm um tipo de dados inteiro. Depois disso, declaramos a função principal () e começamos a codificar no corpo da função principal ().

Além disso, construímos um ponteiro de arquivo. “Se” a declaração é então aplicada. Aqui, definimos o ponteiro de arquivo igual à função fopen (). A função fopen () é usada para abrir o arquivo especificado. Com a ajuda da instrução IF, verificamos se o caminho fornecido do arquivo é igual a 'NULL' Printf, imprima o texto 'o arquivo' não pode abrir '. Caso contrário, o programa sai.

Mais o método fseek () é utilizado. Ele mantém três parâmetros. O primeiro argumento contém o ponteiro do arquivo. O segundo argumento mostra a localização do arquivo especificado. Da mesma forma, o último argumento indica o ponto de onde o desvio começa. Além disso, solicitamos um loop. Declaramos a variável e definimos a condição para o número e, por último, fazemos um incremento no valor de um número.

Para obter o texto do arquivo especificado, empregamos a função fread (). Agora temos que imprimir o resultado para que a função printf () seja usada. Mais uma vez, aplicamos a função fseek (). No final para fechar o arquivo fornecido, usamos a função fclose ().

Usando a função fgetc () para ler a entrada de um arquivo

A função fgetc () recupera os caracteres referidos pelo indicador de função. Ele fornece a palavra recebida pelo fluxo e ajusta o ponto de leitura para a próxima palavra após cada leitura válida. Mas se não houver dados para ler, este método calcula uma variável EOF (-1).

#incluir
#incluir
#incluir
int main ()

Arquivo* fptr;
char chr;
fptr = fopen ("dados.txt "," r ");
if (null == fptr)
printf ("arquivo não pode abrir \ n");

printf ("Os dados do arquivo são \ n Nome: Amna \ n Idade: 24 \ n Nome: Sara \ n Idade: 16 \ n Nome: Aneela \ n Idade: 30 \ n");
fazer
chr = fgetc (fptr);
printf ("%c", chr);
while (Chr != Eof);
fclose (FPTR);
retornar 0;

Primeiro de tudo, incluímos três arquivos de cabeçalho. Biblioteca padrão é o identificador do arquivo de cabeçalho . Ele contém dados sobre disponibilidade de armazenamento e métodos gratuitos. Input-output padrão é o identificador do arquivo de cabeçalho . Ele contém dados sobre métodos de entrada/saída. O arquivo de cabeçalho inclui declarações de macro, variáveis ​​e definições de métodos e classes que são usadas não apenas para processamento de texto, mas também para diferentes funções de manuseio de armazenamento.

Na próxima etapa, inicializamos a função principal (). Aqui, um ponteiro de um arquivo especificado é construído e declaramos uma variável com um tipo de dados de caracteres. Em seguida, utilizamos a função FOPEN (). Este método contém dois argumentos: o primeiro parâmetro mostra o nome do arquivo e o segundo parâmetro mostra o modo do arquivo. Aqui, o método FOPEN () abre o arquivo definido no modo de leitura. Estamos usando a declaração if para verificar se o ponteiro do arquivo é igual a 'nulo' ou não. Se o ponteiro do arquivo for igual a 'nulo', o programa especificado termina. Caso contrário, empregamos a função printf () para imprimir o conteúdo do arquivo.

Além disso, com o uso de um loop de fazer-while, passamos por cada personagem um por um. Aqui, declaramos a função fgetc () para recuperar os dados do arquivo definido. Agora, aplicamos o loop while para examinar se o personagem fornecido não estaria no final da linha; Se fosse, pare de ler. O método fclose () é usado e isso traz o arquivo a um fechamento.

Ao usar a função fgetc (), o código acima mencionado lê todos os dados do arquivo, um único caractere de cada vez. Um loop de doen-while seria usado para recuperar caracteres, a menos que eles cheguem ao final do arquivo. Produz o char EOF (-1) sempre que atinge a conclusão.

Conclusão

Neste artigo, passamos por diferentes maneiras que são usadas para ler os dados do arquivo. Aqui, aplicamos métodos FGETC (), Fread () e Fseek () para obter conteúdo com a ajuda de exemplos específicos. Tudo isso são funções predefinidas do idioma C. Para ler cada palavra de um arquivo, usamos o método fgetc (). Da mesma forma que extrair dados configurados para um arquivo, usamos o método fseek ().