Como ler um arquivo de texto e imprimir todas as strings em C

Como Ler Um Arquivo De Texto E Imprimir Todas As Strings Em C



Lendo um arquivo de texto e imprimindo tudo cordas é uma tarefa chave que é freqüentemente feita por programadores C. É importante entender os fundamentos da leitura a arquivo de texto em C e como imprimir o cordas dele antes de tentar esta tarefa.

A leitura de um arquivo de texto e a impressão de todas as strings que ele contém serão demonstradas usando a programação C neste artigo.







Leia um arquivo de texto e imprima todas as strings em C

Existem quatro funções para ler um arquivo de texto e imprimir todas as strings em C, que são as seguintes:



Método 1: Função fread()

Os dados são leia do arquivo e armazenado em um buffer usando a função C fread() . Para contar elementos em um buffer de matriz, o fread() O método lê do fluxo de entrada fornecido como o parâmetro da função. À medida que cada função de caractere é lida, o indicador de posição do arquivo para o fluxo de entrada especificado avança.



O fread() O método em C tem a sintaxe.





size_t fread ( vazio * array_buffer, tamanho_t tamanho , contagem size_t, ARQUIVO * file_stream )

Vejamos os parâmetros da função fread() com mais detalhes:



buffer de matriz: Os dados são mantidos temporariamente no buffer de um computador, um espaço de memória. Este argumento é um ponteiro referente ao local na memória do buffer que conterá os dados ler do fluxo de entrada.

tamanho: Este argumento instrui a função de quantos bytes de dados serão lidos do fluxo de entrada para cada bloco.

contar: Ele especifica quantos caracteres serão lidos do fluxo de entrada de dados.

arquivo_stream: É um ponteiro referente a um objeto FILE.

#include
#include
int principal ( ) {
ARQUIVO * arquivo ;
buffer de caracteres [ 100 ] ;
arquivo = abrir ( 'C_Arquivo.txt' , 'r' ) ;
se ( arquivo == NULO ) {
printf ( 'Erro: não foi possível abrir o arquivo \n ' ) ;
retornar 1 ;
}
int contar =medo ( & buffer, tamanho de ( Caracteres ) , 100 , arquivo ) ;
fechar ( arquivo ) ;
printf ( 'Os dados lidos do arquivo são: %s \n ' , amortecedor ) ;
printf ( 'Número de elementos lidos: %d' , contar ) ;
fechar ( arquivo ) ;
retornar 0 ;
}

Neste exemplo, definimos um buffer de array de caracteres de tamanho 100 antes de utilizar fopen() para abrir o arquivo de texto C_Arquivo.txt em modo de leitura. Usando uma instrução if, determinamos se o arquivo foi aberto com sucesso. O próximo passo é ler até 100 bytes de dados do arquivo usando fread() . O buffer de destino, neste caso, a matriz de buffer, é o primeiro parâmetro a ser fread(). O segundo argumento, tamanho de , determina o tamanho de cada item a ser lido como estamos lendo em caracteres . A terceira entrada é a quantidade a ser lida, que neste caso é 100 . O ponteiro de arquivo é o quarto parâmetro. Por último, usamos printf() para imprimir os dados lidos do arquivo e fclose() para fechar o arquivo. A execução deste programa resultaria em resultados como este, se C_Arquivo.txt :

Saída

Método 2: função fgets ()

A linguagem C fgets() O método lê n caracteres do fluxo na string str. O fgets() método continua a ler os caracteres do fluxo até (n-1) caracteres foram lidos, um caractere de nova linha foi detectado ou o fim do arquivo (EOF) foi atingido.

#include
int principal ( ) {
ARQUIVO * arquivo ;
buffer de caracteres [ 100 ] ;
arquivo = abrir ( 'C_Arquivo.txt' , 'r' ) ;
se ( arquivo == NULO ) {
printf ( 'Erro: não foi possível abrir o arquivo \n ' ) ;
retornar 1 ;
}
enquanto ( fgets ( amortecedor, 100 , arquivo ) ) {
printf ( 'String lida do arquivo: %s' , amortecedor ) ;
}
fechar ( arquivo ) ;
retornar 0 ;
}

Este exemplo usa fopen() para abrir um arquivo de texto chamado C_Arquivo.txt no modo de leitura depois de primeiro declarar um buffer de array de caracteres de tamanho 100 . Usando uma instrução if, determinamos se o arquivo foi aberto com sucesso. Depois disso, empregamos um loop while e fgets() para ler linhas de texto do arquivo usando um ponteiro de arquivo. Usando printf() dentro do loop, imprimimos cada linha de texto. A execução deste programa forneceria a saída:

Saída

Método 3: função fscanf()

Um método de biblioteca padrão chamado fscanf() aceita uma matriz de parâmetros e os transforma em valores que seu aplicativo pode utilizar. Enquanto lendo do arquivo , ele retornará a string de formato no lugar de qualquer coisa que preveja ver dentro. Para evitar que seu software interprete a string de formato como parte de sua própria sintaxe, ela deve ser colocada entre aspas ('').

#include
int principal ( ) {
ARQUIVO * arquivo ;
int num1, num2, num3;
arquivo = abrir ( 'C_Arquivo.txt' , 'r' ) ;
se ( arquivo == NULO ) {
printf ( 'Erro: não foi possível abrir o arquivo \n ' ) ;
retornar 1 ;
}
fscanf ( arquivo , '%d %d %d' , & número 1, & num2, & número 3 ) ;
printf ( 'Os números lidos do arquivo são: %d, %d, %d \n ' , num1, num2, num3 ) ;
fechar ( arquivo ) ;
retornar 0 ;
}

Este exemplo abre o arquivo C_Arquivo.txt no modo de leitura declarando primeiro 3 variáveis ​​int, num1, num2 e num3. Usando uma instrução if, determinamos se o arquivo foi aberto com sucesso. A próxima etapa é ler três números do arquivo usando fscanf() e a %d especificador de formato. As variáveis ​​num1, num2 e num3 são onde os valores são mantidos. Por último, usamos printf() para produzir os valores dessas variáveis ​​e fclose() para fechar o arquivo. A execução deste programa resultaria nos resultados mostrados abaixo:

Saída

Método 4: Função fgetc()

Um arquivo pode ser ler caractere por caractere usando o fgetc() função. O código ASCII para o caractere que esta função lê é retornado por esta função. O caractere do local especificado do ponteiro de arquivo é retornado. O caractere seguinte é lido uma vez que o caractere foi lido, de acordo com o ponteiro do arquivo. Este método retorna um arquivo EOF se o ponteiro estiver no final do arquivo ou se houver algum problema.

#include
int principal ( ) {
ARQUIVO * arquivo ;
caractere c;
arquivo = abrir ( 'C_Arquivo.txt' , 'r' ) ;
se ( arquivo == NULO ) {
printf ( 'Erro: não foi possível abrir o arquivo \n ' ) ;
retornar 1 ;
}
enquanto ( ( c = fgetc ( arquivo ) ) ! = EOF ) {
printf ( '%c' , c ) ;
}
fechar ( arquivo ) ;
retornar 0 ;
}

Neste caso, usamos o fopen() comando para abrir o arquivo de texto C_Arquivo.txt em modo de leitura. Usando uma instrução if, determinamos se o arquivo foi aberto com sucesso. Depois disso, empregamos um loop while e fgetc() para ler os caracteres do arquivo. O caractere recebido do arquivo é atribuído à variável c dentro do loop antes de ser impresso usando printf(). O loop continua em execução até que o EOF A constante (Fim do arquivo) detecta o final do arquivo. A execução deste programa obteria os seguintes resultados, se C_Arquivo.txt contém a palavra 'Linuxint'.

Saída

Conclusão

Usando as etapas descritas acima, C pode ser usado para ler um arquivo de texto e imprimir todas as strings contém. Ele começa usando o fopen() chamada do sistema para abrir o arquivo, seguida pelo uso de fscanf(), fread(), fgets(), fgetc() para ler os dados. Depois, o arquivo é fechado usando fclose() e um loop for é usado para imprimir as strings. Ao empregar essas técnicas, C pode ser usado para ajudar a ler e imprimir dados de maneira eficiente.