Noções básicas de Sequential de acesso a arquivos em C Programming
A maneira mais simples que a informação de programação C é armazenado em um arquivo é sequencialmente,
um byte a seguir ao outro. O arquivo contém uma longa corrente de dados.acesso a arquivos em C é simplesmente uma outra forma de I / O. Ao invés de ir para o visor, a entrada ou saída vai para um arquivo. Um arquivo é aberto usando o fopen () função:
lidar = fopen (filename, modo) -
A função fopen () requer dois argumentos, ambos cordas. O primeiro é um nome do arquivo- a segunda é uma modo. A função fopen () retorna um arquivo manusear, que é um ponteiro usado para referenciar o arquivo. Esse ponteiro é um tipo de arquivo de variável.
Modo | Abra o arquivo para | Criar arquivo? | notas |
---|---|---|---|
"uma" | acrescentando | sim | Ele contribui para a extremidade de um file- um ficheiro existente é criada se itdoesn't existir. |
"A +" | Anexando e leitura | sim | A informação é adicionado ao fim do ficheiro. |
"R" | Leitura | Não | Se o arquivo não existir, fopen () retorna um erro. |
"R +" | Leitura e escrita | Não | Se o arquivo não existir, será devolvido um erro. |
"W" | Escrevendo | sim | O arquivo existente será substituído se o mesmo nome é usado. |
"W +" | Escrita e leitura | sim | O arquivo existente será substituído. |
o modo é uma cadeia. Mesmo quando apenas um caractere for especificado, ele deve ser colocado entre aspas duplas.
Depois que o arquivo é aberto, você usar o manusear variável para referenciar o arquivo como você ler e escrever. O arquivo funções de I / O são semelhantes ao seu padrão de I / O homólogos, mas com um prefixo f. Para escrever para um arquivo, você pode usar o fprintf (), fputs (), fputchar () e funções similares. Leitura de um arquivo usa as fscanf (), fgets () e funções similares.
Você fecha o arquivo usando a função fclose () com o identificador de arquivo como seu argumento.
Como escrever um texto para um arquivo
Escrever esse arquivo demonstra o processo básico de criação de um novo arquivo, escrever um texto para o arquivo, e em seguida, fechar o acesso ao arquivo.
Escrevem que ARQUIVO
#include #include int main () {FILE * fh-fh = fopen ( "hello.txt", "w") - se (fh == null) {puts ( "Não é possível abrir esse arquivo!") - saída (1) -} fprintf (fh, "Olha o que eu fiz! n") - fclose (fh) -Retornar (0) -}
Line 6 cria o identificador de arquivo, fh. É um ponteiro. As lojas ponteiro do resultado da função fopen () a partir da linha 8. A hello.txt arquivo é criado usando o modo "w" (escrever). Se o arquivo existir, ele é substituído.
A instrução if verifica para confirmar que o arquivo foi adequadamente aberto. Se não fosse, o valor de fh é NULL, e são tomadas medidas adequadas.
A função fprintf () escreve texto para o arquivo na Linha 14. O formato é o mesmo que para printf (), embora o identificador de arquivo deve ser incluído como um argumento.
Finalmente, Linha 15 fecha o arquivo usando a função fclose (). Esta declaração é um passo necessário para qualquer tipo de programação de acesso a arquivos.
Exercício 1: Copie o código fonte a partir Escrever esse arquivo em seu editor. Criar e executar o programa.
a saída do programa vai para um arquivo, para que você não ver nada exibido quando ele é executado. Use o navegador de arquivos do seu computador para localizar o arquivo e abri-lo. Ou você pode escrever um programa que lê o texto do mesmo arquivo.
Como ler texto de um arquivo
As funções de texto de leitura padrão C são usados para ler o texto de um arquivo da mesma forma que ler o texto a partir do teclado. Para ler o texto um carácter de cada vez, use a função fgetc ().
Ler esse arquivo
#include #include int main () {FILE * fh-int ch-fh = fopen ( "hello.txt", "R") - se (fh == null) {puts ( "Não é possível abrir esse arquivo!" ) -exit (1) -} while ((ch = fgetc (FH)) = EOF) putchar (ch) -fclose (fh) -Retornar (0) -}
Linha 9 em ler esse arquivo abre a hello.txt arquivo somente para leitura. O arquivo deve existir ou então ocorre um erro.
O loop while na linha 15 exibe o conteúdo do arquivo um carácter de cada vez. A função fgetc () lê um caractere do arquivo identificado por fh alça. Esse personagem é armazenado em ch variável. O resultado é comparado com o final da constante Arquivo. Quando há uma correspondência, o arquivo foi completamente ler e o loop while pára. Caso contrário, o carácter que é lido é exibida na Linha 16.
Exercício 2: Criar um novo programa usando o código-fonte mostrado na ler esse arquivo. Construir e executar.
O programa exibe o conteúdo do arquivo criado pelo Exercício 1- caso contrário, você verá a mensagem de erro.
Exercício 3: Modifique o código fonte do Exercício 1 a escrever uma segunda corda para o arquivo. Adicionar a seguinte declaração após Linha 14:
fputs ( "Meu programa C escreveu este arquivo. n", fh) -
Ao contrário de usar as puts () declaração, você precisa especificar um caractere de nova linha para fputs () de saída. Além disso, o argumento de identificador de arquivo aparece após a corda, que é incomum para uma função de arquivo de linguagem C.
Os dois arquivos de gravação de funções fprintf () e fputs () escrever um texto para o arquivo sequencialmente, um personagem após o outro. O processo funciona como escrever um texto para a tela, mas em vez disso os personagens são salvos em um arquivo no armazenamento permanente.
A função fgets () lê uma cadeia inteira de texto de um arquivo. Para fazê-lo funcionar, você precisa de um buffer de entrada, o número de caracteres de ler, e o identificador de arquivo.
Engolindo cadeias de texto
#include #include int main tampão () {FILE * fh-char [64] -fh = fopen ( "hello.txt", "R") - se (fh == null) {puts ( "Não é possível abrir esse arquivo! ") - exit (1) -} while (fgets (buffer, 64, fh)) printf ("% s ", buffer) -fclose (fh) -Retornar (0) -}
A função fgets () aparece na Linha 15 como a condição do loop while. Isso porque fgets () retorna um ponteiro para a cadeia que é lido, e quando nenhuma cadeia é lido, ele retorna um NULL. Esse valor pára o loop. Caso contrário, a função printf () na linha 16 exibe a entrada.
O tamanho do buffer e o tamanho dos caracteres lidos em engolir cadeias de texto são idênticos. Isso porque o 0 no final da cadeia é lida a partir do arquivo e não é interpretado como um marcador de fim-de-arquivo.
Exercício 4: Digite o código-fonte do engolindo cadeias de texto em seu editor. Construir e executar.