E / S de arquivo em programação C com exemplos

Neste guia, aprenderemos como realizar operações de entrada / saída (E / S) em um arquivo usando a linguagem de programação C.

E / S do arquivo C – Índice

1. Abrindo um arquivo
2. Lendo um arquivo
3. Escrevendo um arquivo
4. Fechando um arquivo
5. Lendo e gravando strings em um arquivo
6. Lendo e escrevendo arquivos binários em C

Antes de discutirmos cada operação em detalhes, vamos pegar um programa C simples:

Um programa C simples para abrir, ler e fechar o arquivo

No programa acima, estamos abrindo um arquivo newfile.txt no modo r, lendo o conteúdo do arquivo e exibindo no console. permite entender cada operação em detalhes:

Abrindo um arquivo

fopen() função é usada para abrir um arquivo.
Sintaxe:

FILE pointer_name = fopen ("file_name", "Mode");

pointer_name pode ser qualquer coisa sua escolha.
file_name é o nome do arquivo que você deseja abrir. Especifique o caminho completo aqui, como “C: \\ meusarquivos \\ newfile.txt”.

Ao abrir um arquivo, você precisa especificar o modo. O modo que usamos para ler um arquivo é “r ”Que é o” modo somente leitura “.
por exemplo:

FILE *fp;fp = fopen("C:\\myfiles\\newfile.txt", "r");

O endereço do primeiro caractere é armazenado em pointer fp.

Como verificar se o arquivo foi aberto com sucesso?
Se o arquivo não abrir com sucesso, o ponteiro receberá um valor NULL, então você pode escrever a lógica desta :
Este código verificará se o arquivo foi aberto com sucesso ou não. Se o arquivo não abrir, será exibida uma mensagem de erro para o usuário.

..FILE fpr;fpr = fopen("C:\\myfiles\\newfile.txt", "r");if (fpr == NULL){ puts("Error while opening file"); exit();}

Vários modos de abertura de arquivo:

O arquivo é aberto usando a função fopen(), ao abrir você pode usar qualquer um dos seguintes modos de acordo com o requisito.
Modo “r”: É um modo somente leitura, o que significa que se o arquivo for aberto no modo r, não permitirá que você escreva e modifique o conteúdo dele. Quando fopen() abre um arquivo com sucesso, ele retorna o endereço do primeiro caractere do arquivo, caso contrário, retorna NULL.

Modo “w”: É uma gravação apenas modo. A função fopen() cria um novo arquivo quando o arquivo especificado não existe e se ele falhar ao abrir o arquivo, ele retornará NULL.

Modo ” a ”: Usando este modo, o conteúdo pode ser anexado ao final de um arquivo existente. Como no modo “w”, fopen() cria um novo arquivo se ele não existir. Se a abertura não for bem-sucedida, ele retorna NULL.
Ponteiro de arquivo aponta para: último caractere do arquivo .

Modo “r +”: Este modo é igual ao modo “r”; no entanto, você pode realizar várias operações no arquivo aberto neste modo. Você tem permissão para ler, escrever e modificar o conteúdo do arquivo aberto no modo “r +”.
O ponteiro do arquivo aponta para: Primeiro caractere do arquivo.

Modo “w +”: Mesmo que o modo “w” exceto as operações, que podem ser realizadas; o arquivo pode ser lido, escrito e modificado neste modo.
Modo “a +”: Igual ao modo “a”; você pode ler e anexar os dados no arquivo, no entanto, a modificação de conteúdo não é permitida neste modo.

Lendo um arquivo

Para ler o arquivo, devemos abri-lo primeiro usando qualquer do modo, por exemplo, se você quiser apenas ler o arquivo, abra-o no modo “r”. Com base no modo selecionado durante a abertura do arquivo, podemos realizar certas operações no arquivo.

Programa C para ler um arquivo

fgetc (): Esta função lê o caractere da posição atual do ponteiro e, após uma leitura bem-sucedida, move o ponteiro para o próximo caractere no arquivo. Assim que os ponteiros chegarem ao final do arquivo , esta função retorna EOF (Fim do Arquivo). Usamos EOF em nosso programa para determinar o fim do arquivo.

Gravando em um arquivo

Para escrever o arquivo, nós deve abrir o arquivo em um modo que suporte gravação. Por exemplo, se você abrir um arquivo no modo “r”, não poderá gravar o arquivo, pois “r” é o modo somente leitura que permite apenas a leitura.

Exemplo: Programa C para escrever o arquivo

Este programa pede ao usuário para inserir um caractere e escreve esse caractere no final do arquivo. Se o arquivo não existir, este programa criará um arquivo com o nome especificado e gravará o caractere de entrada no arquivo.

Fechando um arquivo

fclose(fp);

A função fclose () é usada para fechar um arquivo aberto. Como argumento, você deve fornecer um ponteiro para o arquivo que deseja fechar.

Um exemplo para mostrar a operação Abrir, ler, gravar e fechar em C

Como ler / gravar (E / S) Strings in Files – fgets & fputs

Aqui, discutiremos como ler e escrever strings em um arquivo.

char *fgets(char *s, int rec_len, FILE *fpr)

s: Matriz de caracteres para armazenar strings.
rec_len: Comprimento do registro de entrada.
fpr: Ponteiro para o arquivo de entrada.
Vamos dar um exemplo:

Exemplo para ler as strings de um arquivo em programação C

No exemplo acima, usamos a função fgets como esta:

fgets(str, 10, fpr)

Aqui str representa a string (matriz de char) na qual você está armazenando a string após lê-la do arquivo.
10 é o comprimento da string que precisa ser lido sempre.
fpr é um ponteiro para o arquivo, que será lido.

Por que usei if (fgets (str, 10, fpr) == NULL como uma lógica para determinar o fim do arquivo?
Nos exemplos acima, usamos ch == EOF para saber o final do arquivo. Aqui usamos esta lógica porque fgets retorna NULL quando não há mais registros disponíveis para serem lidos .

Programa C – Escrevendo string em um arquivo

int fputs ( const char * s, FILE * fpw );

char *s – Matriz de char.
FILE *fpw – Ponteiro (do tipo FILE) para o arquivo, que será escrito.

fputs leva dois argumentos –

fputs(str, fpw)

str – str representa a matriz, na qual a string é armazenada.
fpw – Ponteiro FILE para o arquivo de saída, no qual o registro precisa ser escrito.

Aponte para observar sobre fputs:
fputs por padrão não adiciona uma nova linha após escrever cada registro, para fazer isso manualmente – você pode ter a seguinte instrução após cada gravação no arquivo.

fputs("\n", fpw);

C FILE I / O para arquivos binários

Até agora, aprendemos as operações de arquivo em arquivos de texto, e se os arquivos forem binários (como o arquivo .exe). Os programas acima não funcionarão com arquivos binários, no entanto, há uma pequena alteração no tratamento de arquivos binários. A principal diferença é o nome do arquivo & modos. Vamos entender isso com a ajuda de um exemplo. Digamos que eu tenha dois arquivos binários bin1.exe & bin2.exe – desejo copiar o conteúdo de bin1.exe para bin2.exe:

Exemplo: Leitura e gravação de arquivos binários em C

Observação: os modos de abertura de arquivo são “rb” e “wb” em vez de “r” & “w” ..

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *