·
Ciência da Computação ·
Introdução à Lógica e Programação
Send your question to AI and receive an answer instantly
Recommended for you
69
Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas
Introdução à Lógica e Programação
UFPB
24
Introdução aos Ponteiros em Linguagem C
Introdução à Lógica e Programação
UFPB
23
Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação
Introdução à Lógica e Programação
UFPB
19
Introdução à Programação em C: Strings e Vetores de Caracteres
Introdução à Lógica e Programação
UFPB
13
Citus Distributed PostgreSQL for Data-Intensive Applications
Introdução à Lógica e Programação
UFPB
10
Introdução às Strings em C++
Introdução à Lógica e Programação
UFAL
7
Implementação de Busca Binária e Funções de Ordenação em C++
Introdução à Lógica e Programação
UFAL
1
Verificação de Sorteio para Visto de Estágio
Introdução à Lógica e Programação
UFAL
18
Conceitos sobre Vetores em Programação
Introdução à Lógica e Programação
UFAL
35
Introdução a Ponteiros e Arrays em C
Introdução à Lógica e Programação
UFAL
Preview text
Linguagem C ARQUIVOS Introdução à Programação 20221 Profa Giorgia de Oliveira Mattos giorgiamattosgmailcom ARQUIVOS Introdução Um arquivo em C pode representar diversas coisas como arquivos em disco uma impressora um teclado ou qualquer dispositivo de ES A abordagem deste material é apenas para arquivos em disco A linguagem C dá suporte para à utilização de arquivos através da biblioteca stdioh que fornece várias funções para a manipulação de arquivos como o tipo FILE Uma variável ponteiro para FILE é capaz de identificar um arquivo em disco direcionando para ele todas as operações FILE arq ARQUIVOS Em C os dados podem ser gravados em arquivos binários ou de texto Os arquivos texto podem ser lidos diretamente por qualquer editor de texto Arquivos binários devem ser lidos por programas especiais que convertem a cadeia de bits em informações compreensíveis A função fopen abre um arquivo retornando o ponteiro associado a esse arquivo FILE arq arq fopen nomedoarquivo mododeabertura arq é a variável que armazenará o endereço inicial de memória ocupado pelo arquivo se o arquivo não puder ser aberto a variável receberá o valor NULL nomedoarquivo é o nome do arquivo que se deseja abrir podendo incluir o caminho path da pesquisa mododeabertura representa como o arquivo será aberto ARQUIVOS Modos de abertura do arquivo r Abre um arquivo de texto existente onde poderão ser realizadas apenas leituras w Cria um arquivo de texto onde poderão ser realizadas apenas operações de escrita a Anexa novos dados a um arquivo de texto existente sempre no final r Abre um arquivo de texto existente onde poderão ser realizadas operações de leitura e de escrita w Cria um novo arquivo de texto onde poderão ser realizadas operações de leitura e de escrita a Anexa novos dados ou cria um arquivo de texto existente para operações de leitura e de escrita rb Abre um arquivo binário onde poderão ser realizadas apenas leituras wb Cria um arquivo binário onde poderão ser realizadas apenas operações de escrita ab Anexa novos dados a um arquivo binário rb Abre um arquivo binário onde poderão ser realizadas operações de leitura e de escrita wb Cria um arquivo binário onde poderão ser realizadas operações de leitura e de escrita ab Anexa novos dados a um arquivo binário para operações de leitura e de escrita ARQUIVOS Exemplo FILE arq arq fopen arquivo1txt w A função fopen criou um arquivo chamado arquivo1txt onde poderão ser realizadas operações de escrita pois foi aberto com o modo de abertura w Quando a função fopen é usada para abrir um arquivo no modo de escrita w e wb duas situações podem ocorrer Se o arquivo não existir ele será criado Se o arquivo já existir ele será sobreposto por um novo arquivo vazio Se a função fopen for executada sem problemas a variável arq receberá o endereço de memória ocupado pelo arquivo Se ocorrer algum erro arq recebrá o valor NULL ARQUIVOS É recomendável a realização de um teste para verificar se o arquivo foi aberto corretamente Exemplo ARQUIVOS A função fopen não é capaz de criar pastas pode apenas criar arquivos Para criar pastas deverá ser usada a função system pertencente à stdlibh A função system passa uma string como um comando para o processador Com ela é possível as mesmas operações em linha de comando de um SO como a criação de pastas listagem do conteúdo de uma pasta renomear arquivo copiar arquivo No Linux system mkdir p homeuserIPTESTE ARQUIVOS A função fclose fecha um arquivo Quando ocorrer algum erro durante a execução da função poderá haver perda de dados ou até mesmo do arquivo int fclose FILE arq arq é a referência para o arquivo arq é o ponteiro obtido quando o arquivo foi aberto Quando a função fclose é executada gera como resultado um número inteiro Se esse número for igual a zero então o arquivo foi fechado corretamente Caso contrário houve erro na operação Qualquer problema na execução do programa poderá corromper os arquivos abertos É aconselhável mantêlos abertos o menor tempo possível ARQUIVOS A função ferror detecta se ocorreu algum erro durante uma operação com arquivos int ferror FILE arq A função retorna um inteiro e deve ser chamada logo depois da invocação de qualquer outra função de manipulação de arquivo A função fputc escreve um caracter em um arquivo fputc char ch FILE arq ch é o caracter que será escrito no arquivo arq é a referência para o arquivo onde o caracter será escrito ARQUIVOS A função fgetc lê um caracter em um arquivo int fgetc FILE arq arq é a referência para o arquivo onde o caracter será lido Se a execução da função fgetc for bemsucedida será retornado o valor do caracter lido poderá ser armazenado em uma variável int ou em uma variável char Caso ocorra erro na leitura o valor devolvido será EOF ARQUIVOS A função fputs escreve uma cadeia de caracteres em um arquivo fputs char cadeia FILE arq cadeia armazena a cadeia que será escrita no arquivo arq é a referência para o arquivo onde a cadeia será escrita A função fgets lê uma cadeia de caracteres armazenada em um arquivo A cadeia será formada por todos os caracteres existentes da posição atual do ponteiro do arquivo até uma marca de nova linha ou até que tam1 caracteres forem lidos fgets char cadeia int tam FILE arq cadeia armazena a cadeia de caracteres obtida do arquivo tam indica que a quantidade máxima de caracteres lidos será tam1 arq é a referência para o arquivo ARQUIVOS Arquivos em C não podem ser associados a um tipo primitivo de dados ou a uma struct Os arquivos simplesmente armazenam uma sequência de caracteres ou uma sequência de bytes Em vários momentos é mais útil e mais prático ler parte do conteúdo de um arquivo e gravar diretamente em uma variável int float ou struct Também é importante conseguir pegar o conteúdo de variáveis destes tipos e graválos diretamente em um arquivo Quando isso for necessário o programa deverá trabalhar com arquivos binários Em operações de leitura ou escrita deverá ser informado o número de bytes que serão lidos ou gravados A função sizeof permite descobrir quantos bytes uma variável de qualquer tipo ocupa ARQUIVOS A função fwrite pode escrever qualquer tipo de dado e não apenas caracteres ou strings int fwrite void mem sizet qtdbytes sizet cont FILE arq mem representa a variável que armazena o conteúdo a ser gravado no arquivo qtdbytes representa o total de bytes que será escrito no arquivo cont representa o número de blocos de tamanho qtdbytes que serão escritos no arquivo arq é a referência para o arquivo onde as informações serão escritas Quando a função fwrite for bemsucedida será retornado um valor igual ao número de gravações realizadas cont Se ocorrer erro o valor retornado será menor que cont ARQUIVOS A função fread pode ler qualquer tipo de dado e não apenas caracteres ou strings int fread void mem sizet qtdbytes sizet cont FILE arq mem representa a variável que vai receber o conteúdo lido do arquivo qtdbytes representa o tamanho do bloco em bytes que será lido do arquivo cont representa o número de blocos do tamanho especificado pelo parâmetro qtdbytes que serão lidos arq é a referência para o arquivo que será lido Quando a função fread for bemsucedida será retornado um valor igual ao número de leituras realizadas cont Se ocorrer erro ou o final do arquivo for encontrado o valor retornado será menor que cont ARQUIVOS A função feof descobre se o fim do arquivo foi encontrado int feof FILE arq arq é a referência para o arquivo a ser analisado A função feof retorna um número inteiro Quando este número for zero significa que o fim do arquivo ainda não foi atingido Qualquer outro valor significa que o fim do arquivo foi encontrado A função rewind reposiciona o cursor de volta ao início do arquivo void rewind FILE arq ARQUIVOS O cursor é um ponteiro que indica a partir de que posição dentro de um arquivo uma operação será executada Quando o arquivo acaba de ser aberto seu cursor está apontando para a posição zero primeiro byte do arquivo Se for feita uma leitura com fread o cursor se movimentará tantos bytes quanto forem lidos A função fseek é usada para mudar a posição do cursor sem que haja a necessidade de leituras ou escritas no arquivo int fseek FILE arq long qtdebytes int posicao arq representa o arquivo que será percorrido qtdebytes representa a quantidade de bytes que o cursor será movimentado a partir de posicao posicao representa o ponto a partir do qual a movimentação será executada podendo assumir 3 valores SEEKSET SEEKCUR SEEKEND ARQUIVOS Exemplo1 fseek arq sizeofstruct cliente2 SEEKSET O cursor será movimentado a partir do início em direção ao fim do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável struct cliente multiplicado por 2 Exemplo 2 fseek arq sizeofstruct clientecont SEEKCUR O cursor será movimentado da posição corrente em direção ao fim do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável do tipo struct cliente multiplicado pelo conteúdo da variável cont Exemplo 3 fseek arq sizeofstruct cliente SEEKEND O cursor será movimentado a partir do fim em direção ao início do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável do tipo struct cliente ARQUIVOS A função remove apaga um arquivo int remove char nomearq nomearq indica o nome físico do arquivo que será removido podendo ser incluído o caminho path Exemplo remove cGIORGIAIPclientesdat A função rename troca o nome de um arquivo int rename char nomeatual char novonome nomeatual indica o nome físico atual do arquivo podendo ser incluído o caminho novonome indica o novo nome físico que se pretende dar ao arquivo podendo ser incluído o caminho path ARQUIVOS Exemplo Observações Os caminhos são iguais será feita a troca do nome o arquivo permanece no mesmo local A variável x guarda o resultado da execução da função rename Se x receber valor igual a zero a troca transcorreu sem problemas caso contrário ocorreu erro ARQUIVOS Exemplo Observações Os caminhos dos arquivos são diferentes além da troca do nome o arquivo será removido da pasta cGIORGIAIP e colocado na pasta cGIORGIAIPTESTE A variável x guarda o resultado da execução da função rename Se x receber valor igual a zero a troca transcorreu sem problemas caso contrário ocorreu erro É importante verificar se a pasta de destino existe a função rename não consegue criar novas pastas Se a pasta destino não existir a função rename retornará erro ARQUIVOS EXERCÍCIOS 1 Faça um programa para criar um arquivo ALUNOSDAT no qual cada registro será composto pelos campos numero nome curso nota1 nota2 2 Faça um programa para incluir alunos no arquivo criado no exercício 1 Não podem existir dois alunos com o mesmo número 3 Faça um programa para alterar as notas dos alunos do arquivo criado no exercício 1 4 Faça um programa para alterar o curso dos alunos do arquivo criado no Exercício 1 5 Faça um programa para excluir os alunos do arquivo criado no Exercício 1 6 Faça um programa para consultar o número nome e a média de todos os alunos cadastrados no arquivo do Exercício 1 ARQUIVOS EXERCÍCIOS 7 Faça um programa para consultar o número nome e média de todos os alunos cadastrados no Exercício 1 e que estejam aprovados media 7 8 Faça um programa para consultar o numero nome e o curso de todos os alunos cadastrados no Exercício 1 e que estejam reprovados media 5 9 Faça um programa para consultar o nome de todos os alunos de um curso
Send your question to AI and receive an answer instantly
Recommended for you
69
Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas
Introdução à Lógica e Programação
UFPB
24
Introdução aos Ponteiros em Linguagem C
Introdução à Lógica e Programação
UFPB
23
Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação
Introdução à Lógica e Programação
UFPB
19
Introdução à Programação em C: Strings e Vetores de Caracteres
Introdução à Lógica e Programação
UFPB
13
Citus Distributed PostgreSQL for Data-Intensive Applications
Introdução à Lógica e Programação
UFPB
10
Introdução às Strings em C++
Introdução à Lógica e Programação
UFAL
7
Implementação de Busca Binária e Funções de Ordenação em C++
Introdução à Lógica e Programação
UFAL
1
Verificação de Sorteio para Visto de Estágio
Introdução à Lógica e Programação
UFAL
18
Conceitos sobre Vetores em Programação
Introdução à Lógica e Programação
UFAL
35
Introdução a Ponteiros e Arrays em C
Introdução à Lógica e Programação
UFAL
Preview text
Linguagem C ARQUIVOS Introdução à Programação 20221 Profa Giorgia de Oliveira Mattos giorgiamattosgmailcom ARQUIVOS Introdução Um arquivo em C pode representar diversas coisas como arquivos em disco uma impressora um teclado ou qualquer dispositivo de ES A abordagem deste material é apenas para arquivos em disco A linguagem C dá suporte para à utilização de arquivos através da biblioteca stdioh que fornece várias funções para a manipulação de arquivos como o tipo FILE Uma variável ponteiro para FILE é capaz de identificar um arquivo em disco direcionando para ele todas as operações FILE arq ARQUIVOS Em C os dados podem ser gravados em arquivos binários ou de texto Os arquivos texto podem ser lidos diretamente por qualquer editor de texto Arquivos binários devem ser lidos por programas especiais que convertem a cadeia de bits em informações compreensíveis A função fopen abre um arquivo retornando o ponteiro associado a esse arquivo FILE arq arq fopen nomedoarquivo mododeabertura arq é a variável que armazenará o endereço inicial de memória ocupado pelo arquivo se o arquivo não puder ser aberto a variável receberá o valor NULL nomedoarquivo é o nome do arquivo que se deseja abrir podendo incluir o caminho path da pesquisa mododeabertura representa como o arquivo será aberto ARQUIVOS Modos de abertura do arquivo r Abre um arquivo de texto existente onde poderão ser realizadas apenas leituras w Cria um arquivo de texto onde poderão ser realizadas apenas operações de escrita a Anexa novos dados a um arquivo de texto existente sempre no final r Abre um arquivo de texto existente onde poderão ser realizadas operações de leitura e de escrita w Cria um novo arquivo de texto onde poderão ser realizadas operações de leitura e de escrita a Anexa novos dados ou cria um arquivo de texto existente para operações de leitura e de escrita rb Abre um arquivo binário onde poderão ser realizadas apenas leituras wb Cria um arquivo binário onde poderão ser realizadas apenas operações de escrita ab Anexa novos dados a um arquivo binário rb Abre um arquivo binário onde poderão ser realizadas operações de leitura e de escrita wb Cria um arquivo binário onde poderão ser realizadas operações de leitura e de escrita ab Anexa novos dados a um arquivo binário para operações de leitura e de escrita ARQUIVOS Exemplo FILE arq arq fopen arquivo1txt w A função fopen criou um arquivo chamado arquivo1txt onde poderão ser realizadas operações de escrita pois foi aberto com o modo de abertura w Quando a função fopen é usada para abrir um arquivo no modo de escrita w e wb duas situações podem ocorrer Se o arquivo não existir ele será criado Se o arquivo já existir ele será sobreposto por um novo arquivo vazio Se a função fopen for executada sem problemas a variável arq receberá o endereço de memória ocupado pelo arquivo Se ocorrer algum erro arq recebrá o valor NULL ARQUIVOS É recomendável a realização de um teste para verificar se o arquivo foi aberto corretamente Exemplo ARQUIVOS A função fopen não é capaz de criar pastas pode apenas criar arquivos Para criar pastas deverá ser usada a função system pertencente à stdlibh A função system passa uma string como um comando para o processador Com ela é possível as mesmas operações em linha de comando de um SO como a criação de pastas listagem do conteúdo de uma pasta renomear arquivo copiar arquivo No Linux system mkdir p homeuserIPTESTE ARQUIVOS A função fclose fecha um arquivo Quando ocorrer algum erro durante a execução da função poderá haver perda de dados ou até mesmo do arquivo int fclose FILE arq arq é a referência para o arquivo arq é o ponteiro obtido quando o arquivo foi aberto Quando a função fclose é executada gera como resultado um número inteiro Se esse número for igual a zero então o arquivo foi fechado corretamente Caso contrário houve erro na operação Qualquer problema na execução do programa poderá corromper os arquivos abertos É aconselhável mantêlos abertos o menor tempo possível ARQUIVOS A função ferror detecta se ocorreu algum erro durante uma operação com arquivos int ferror FILE arq A função retorna um inteiro e deve ser chamada logo depois da invocação de qualquer outra função de manipulação de arquivo A função fputc escreve um caracter em um arquivo fputc char ch FILE arq ch é o caracter que será escrito no arquivo arq é a referência para o arquivo onde o caracter será escrito ARQUIVOS A função fgetc lê um caracter em um arquivo int fgetc FILE arq arq é a referência para o arquivo onde o caracter será lido Se a execução da função fgetc for bemsucedida será retornado o valor do caracter lido poderá ser armazenado em uma variável int ou em uma variável char Caso ocorra erro na leitura o valor devolvido será EOF ARQUIVOS A função fputs escreve uma cadeia de caracteres em um arquivo fputs char cadeia FILE arq cadeia armazena a cadeia que será escrita no arquivo arq é a referência para o arquivo onde a cadeia será escrita A função fgets lê uma cadeia de caracteres armazenada em um arquivo A cadeia será formada por todos os caracteres existentes da posição atual do ponteiro do arquivo até uma marca de nova linha ou até que tam1 caracteres forem lidos fgets char cadeia int tam FILE arq cadeia armazena a cadeia de caracteres obtida do arquivo tam indica que a quantidade máxima de caracteres lidos será tam1 arq é a referência para o arquivo ARQUIVOS Arquivos em C não podem ser associados a um tipo primitivo de dados ou a uma struct Os arquivos simplesmente armazenam uma sequência de caracteres ou uma sequência de bytes Em vários momentos é mais útil e mais prático ler parte do conteúdo de um arquivo e gravar diretamente em uma variável int float ou struct Também é importante conseguir pegar o conteúdo de variáveis destes tipos e graválos diretamente em um arquivo Quando isso for necessário o programa deverá trabalhar com arquivos binários Em operações de leitura ou escrita deverá ser informado o número de bytes que serão lidos ou gravados A função sizeof permite descobrir quantos bytes uma variável de qualquer tipo ocupa ARQUIVOS A função fwrite pode escrever qualquer tipo de dado e não apenas caracteres ou strings int fwrite void mem sizet qtdbytes sizet cont FILE arq mem representa a variável que armazena o conteúdo a ser gravado no arquivo qtdbytes representa o total de bytes que será escrito no arquivo cont representa o número de blocos de tamanho qtdbytes que serão escritos no arquivo arq é a referência para o arquivo onde as informações serão escritas Quando a função fwrite for bemsucedida será retornado um valor igual ao número de gravações realizadas cont Se ocorrer erro o valor retornado será menor que cont ARQUIVOS A função fread pode ler qualquer tipo de dado e não apenas caracteres ou strings int fread void mem sizet qtdbytes sizet cont FILE arq mem representa a variável que vai receber o conteúdo lido do arquivo qtdbytes representa o tamanho do bloco em bytes que será lido do arquivo cont representa o número de blocos do tamanho especificado pelo parâmetro qtdbytes que serão lidos arq é a referência para o arquivo que será lido Quando a função fread for bemsucedida será retornado um valor igual ao número de leituras realizadas cont Se ocorrer erro ou o final do arquivo for encontrado o valor retornado será menor que cont ARQUIVOS A função feof descobre se o fim do arquivo foi encontrado int feof FILE arq arq é a referência para o arquivo a ser analisado A função feof retorna um número inteiro Quando este número for zero significa que o fim do arquivo ainda não foi atingido Qualquer outro valor significa que o fim do arquivo foi encontrado A função rewind reposiciona o cursor de volta ao início do arquivo void rewind FILE arq ARQUIVOS O cursor é um ponteiro que indica a partir de que posição dentro de um arquivo uma operação será executada Quando o arquivo acaba de ser aberto seu cursor está apontando para a posição zero primeiro byte do arquivo Se for feita uma leitura com fread o cursor se movimentará tantos bytes quanto forem lidos A função fseek é usada para mudar a posição do cursor sem que haja a necessidade de leituras ou escritas no arquivo int fseek FILE arq long qtdebytes int posicao arq representa o arquivo que será percorrido qtdebytes representa a quantidade de bytes que o cursor será movimentado a partir de posicao posicao representa o ponto a partir do qual a movimentação será executada podendo assumir 3 valores SEEKSET SEEKCUR SEEKEND ARQUIVOS Exemplo1 fseek arq sizeofstruct cliente2 SEEKSET O cursor será movimentado a partir do início em direção ao fim do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável struct cliente multiplicado por 2 Exemplo 2 fseek arq sizeofstruct clientecont SEEKCUR O cursor será movimentado da posição corrente em direção ao fim do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável do tipo struct cliente multiplicado pelo conteúdo da variável cont Exemplo 3 fseek arq sizeofstruct cliente SEEKEND O cursor será movimentado a partir do fim em direção ao início do arquivo O total de bytes movimentado é a quantidade de bytes necessários para armazenar uma variável do tipo struct cliente ARQUIVOS A função remove apaga um arquivo int remove char nomearq nomearq indica o nome físico do arquivo que será removido podendo ser incluído o caminho path Exemplo remove cGIORGIAIPclientesdat A função rename troca o nome de um arquivo int rename char nomeatual char novonome nomeatual indica o nome físico atual do arquivo podendo ser incluído o caminho novonome indica o novo nome físico que se pretende dar ao arquivo podendo ser incluído o caminho path ARQUIVOS Exemplo Observações Os caminhos são iguais será feita a troca do nome o arquivo permanece no mesmo local A variável x guarda o resultado da execução da função rename Se x receber valor igual a zero a troca transcorreu sem problemas caso contrário ocorreu erro ARQUIVOS Exemplo Observações Os caminhos dos arquivos são diferentes além da troca do nome o arquivo será removido da pasta cGIORGIAIP e colocado na pasta cGIORGIAIPTESTE A variável x guarda o resultado da execução da função rename Se x receber valor igual a zero a troca transcorreu sem problemas caso contrário ocorreu erro É importante verificar se a pasta de destino existe a função rename não consegue criar novas pastas Se a pasta destino não existir a função rename retornará erro ARQUIVOS EXERCÍCIOS 1 Faça um programa para criar um arquivo ALUNOSDAT no qual cada registro será composto pelos campos numero nome curso nota1 nota2 2 Faça um programa para incluir alunos no arquivo criado no exercício 1 Não podem existir dois alunos com o mesmo número 3 Faça um programa para alterar as notas dos alunos do arquivo criado no exercício 1 4 Faça um programa para alterar o curso dos alunos do arquivo criado no Exercício 1 5 Faça um programa para excluir os alunos do arquivo criado no Exercício 1 6 Faça um programa para consultar o número nome e a média de todos os alunos cadastrados no arquivo do Exercício 1 ARQUIVOS EXERCÍCIOS 7 Faça um programa para consultar o número nome e média de todos os alunos cadastrados no Exercício 1 e que estejam aprovados media 7 8 Faça um programa para consultar o numero nome e o curso de todos os alunos cadastrados no Exercício 1 e que estejam reprovados media 5 9 Faça um programa para consultar o nome de todos os alunos de um curso