Roteiro Prático Nº 14 Manipulação de Arquivos
|
|
- Benedicta Frade de Almada
- 7 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE FEDERAL DE ITAJUBÁ UNIFEI CAMPUS ITABIRA BAC004 TÉCNICAS DE PROGRAMAÇÃO Professores: Claudia, Denílson, Fabiana, Fernando, Juliano, Natália, Raquel, Rodrigo, Sandro e Walter Roteiro Prático Nº 14 Manipulação de Arquivos 1) Objetivos: Trabalhar manipulação de arquivos. 2) Livro texto: ASCENCIO, A. F.G., CAMPOS, E.A.V. Fundamentos da Programação de Computadores (Algoritmos, Pascal, C/C++ e Java). Editora: Prentice-Hall, ) Fundamentação Teórica Referência para consulta e estudos: Capítulo 9 do livro texto. 3.1) Arquivos Arquivos são estruturas de dados manipuladas fora da memória principal. Um arquivo, que é armazenado em um dispositivo de memória secundária, como discos, por exemplo, pode ser lido ou escrito por um programa. Um arquivo é formado por uma coleção de registros, cada registro é composto por campos e cada campo possui suas características específicas. Um ou mais campos desse registro é considerado campo-chave, que é o campo que diferencia um registro dos demais, evitando duplicidade de informações. 3.2) Funções mais comuns no sistema de E/S ANSI Um arquivo em C/C++ pode representar diversos elementos, como arquivos em discos, impressoras, teclado ou qualquer outro dispositivo de entrada e saída (E/S). Em C/C++ as funções para acesso e manipulação de arquivos se encontram na biblioteca stdlib.h. Essa biblioteca também define novos tipos de dados para serem usados especificamente com arquivos. Tabela 1 Funções para manipulação de arquivos Função Ação fopen( ) abre um arquivo fclose( ) fecha um arquivo putc( ) e fputc( ) escreve um caractere em um arquivo getc( ) e fgetc( ) lê um caractere em um arquivo fputs() escreve uma string em um arquivo fseek( ) posiciona em um registro do arquivo fprint( ) impressão formatada em um arquivo fscanf( ) leitura formatada em um arquivo feof( ) verifica o final de arquivo fwrite( ) escreve tipos maiores de 1 byte em um arquivo fread( ) lê tipos maiores de 1 byte em um arquivo 3.3) Valores legais para modo de abertura de arquivo Existem vários modos de um arquivo ser acessado por um programa. Esses modem determinam que tipo de operação poderá ser executada sobre o arquivo. Modo r w a rb Tabela 2 Modos de abertura de arquivos Ação abre um arquivo texto para leitura cria um arquivo texto para escrita anexa um arquivo texto abre um arquivo binário para leitura
2 wb cria um arquivo binário para escrita ab anexa um arquivo binário r+ abre um arquivo texto para leitura/escrita w+ cria um arquivo texto para leitura/escrita a+ anexa um arquivo texto para leitura/escrita r+b abre um arquivo binário para leitura/escrita w+b cria um arquivo binário para leitura/escrita a+b anexa um arquivo binário para leitura/escrita 4) Exemplo do uso das funções de manipulação de arquivo 4.1) Programa que efetua leitura do teclado e grava em arquivo O programa a seguir trabalha as funções de abertura de arquivo, fopen(), e inserção de caracteres digitados no teclado pela função putc(). #include <conio.h> #include <stdlib.h> using namespace std; int main (void){ FILE *Arquivo; // Declaração do arquivo char Caractere, Nome[20]; cout << "Nome do arquivo-> "; gets(nome); if ((Arquivo = fopen (Nome,"w")) == NULL){ //Abre o arquivo para com o nome digitado pelo usuário para escrita "w" cout << "Erro abertura\n"; cout << "Arquivo : %s\n" << Nome; // Encerra o programa do{ Caractere = getche(); // Recupera o caractere do teclado if (Caractere == 13){ //Se tecla ENTER pressionada pula uma linha putc('\n',arquivo); puts(""); else putc(caractere,arquivo);//qualquer outra tecla pressionada, insere o caractere no arquivo while (Caractere!= 27); //Se tecla ESC encerra o processo de inserção fclose(arquivo); // Fecha o arquivo system ("pause"); 4.2) Programa que efetua leitura do arquivo e apresenta na tela O programa a seguir trabalha a leitura de caracteres em um arquivo, getc(), e a impressão na tela. #include <conio.h> #include <stdlib.h> using namespace std; int main ( ){ FILE *Arquivo; // Declaração do arquivo char Nome[20]; char Caractere; cout << "Nome do arquivo-> "; gets (Nome); if ((Arquivo = fopen(nome,"r")) == NULL){ //Abre o arquivo para com o nome digitado pelo usuário para leitura "r" cout <<"Erro de abertura\n"; cout <<"Arquivo: %s"<< Nome;
3 while (Caractere!= EOF){ //Encerra o processo quando encontrar o final do arquivo putchar (Caractere); // Imprime um caractere na tela Caractere = getc(arquivo); // Lê o próximo caractere no arquivo e armazena na váriavel Caractere fclose (Arquivo); // Fecha o arquivo system("pause"); 4.3) Programa que insere uma string em um arquivo O programa a seguir trabalha a leitura de caracteres em uma string, em seguida é utilizado a função fputs() para inserir o conteúdo da string no arquivo.. #include <stdlib.h> using namespace std; int main( ){ char string[80]; //Cria um vetor de caracteres char Caractere, Nome[20]; FILE *arquivo; //Declaração do arquivo cout << "Nome do arquivo-> "; gets(nome); if ((arquivo = fopen (Nome,"ab")) == NULL){ //Abre o arquivo do tipo binário cout << "Erro abertura\n"; cout << "Arquivo : %s\n" << Nome; do{ gets(string); //Armazena os caracteres digitados pelo usuário strcat(string,"\n"); //Como gets() não armazena o caractere de nova linha, é adicionado um antes da string ser gravada no arquivo fputs(string,arquivo); //Copia o conteúdo da variável string para o arquivo while(*string!= '\n'); //Para encerrar o programa o usuário deverá inserir uma linha em branco. fclose(arquivo); cout << "Arquivo fechado! Tecle ENTER "; system ("pause > null"); return(0); 4.4) Programa que apaga um arquivo O programa a seguir utiliza a função remove() para apagar um arquivo do sistema. #include <stdlib.h> using namespace std; int main( ){ char opcao, Nome[20]; cout << "Nome do arquivo-> "; gets(nome); cout << "Deseja realmente apagar o arquivo "<< Nome << " (S/N)?"; cin >> opcao; if(toupper(opcao) == 'S') //Transforma para maiúscula a opção do usuário if(remove(nome)){ //Executa o comando para remover o arquivo, caso sucesso retorna 0; caso não retorna valor diferente de 0 cout << "Erro ao tentar apagar arquivo.\n"; system("pause > null"); exit(1); else cout << "Arquivo apagado com sucesso.\n"; system("pause > null"); return(0);
4 4.5) Programa que insere um registro em um arquivo O programa a seguir trabalha a inserção de registros em um arquivo. #include <stdlib.h> using namespace std; struct Tregistro{ char nome[30]; long int telefone; ; int main ( ){ Tregistro cliente; //Cria a variável cliente do tipo Tregistro FILE *Arquivo; //Declara o arquivo char auxiliar[5]; if ((Arquivo = fopen ("Dados.dat","w+b")) == NULL){ //Abre o Dados.dat no formato binário com permissão de escrita cout << "Erro na abertura do arquivo"; cout << "Pressione ENTER com campo nome vazio para terminar"; cout << ""; do{ cout << "\nentre um nome... : "; fflush(stdin); gets (cliente.nome); cout << "Entre com telefone : "; if (strcmp (cliente.nome,"")!= 0){ gets (auxiliar); cliente.telefone = atol(auxiliar); //Converte a string digitada para inteiro longo (long int) fwrite (&cliente, sizeof(tregistro), 1, Arquivo); //Copia o dados digitados do registro para o arquivo while (strcmp(cliente.nome,"")!= 0); //Encerra a repetição do processo de inserção de registros no arquivo rewind (Arquivo); //Configura o indicador de posição no inicio do arquivo cout << "\n\nlistagem do arquivo\n"; cout << " \n"; cout << "nome \t\ttelefone\n"; while (!feof (Arquivo)){ //Realiza a impressão na tela até encontrar o final do arquivo fread (&cliente, sizeof(tregistro), 1, Arquivo); //Lê uma estrutura do tamanho Tregistro no Arquivo e armazena na posição de memória da variável cliente if (!feof (Arquivo)) cout << cliente.nome << "\t\t" << cliente.telefone << endl; system ("pause > null"); 4.6) Programa que cria um registro ativo em um arquivo O programa a seguir trabalha a inserção de registros em um arquivo, com campo ativo. O campo ativo é utilizado para considerar se um registro deve ser listado (se ele existe) ou não listado (se foi excluído) em um arquivo de dados. #include <iostream.h> #include <stdlib.h> using namespace std; struct Taluno{ int numero, ativo; //Campo ativo possui finalidade de incluir ou excluir um registro char nome[30]; ;
5 int main(){ FILE *Arquivo; Taluno aluno, alunocadastrado; if ((Arquivo = fopen ("Alunos.dat","a+")) == NULL){ //Abre o Alunos.dat no formato texto para anexo de informações cout << "Erro na abertura do arquivo"; else { cout << "\ndigite o numero do aluno a ser incluido: "; cin >> aluno.numero; cout << "\ndigite o nome do aluno: "; fflush(stdin); gets(aluno.nome); aluno.ativo = 1; //Atribui 1 para tornar registro ativo no arquivo while ((!feof(arquivo)) && (aluno.numero!= alunocadastrado.numero))//compara os registros do arquivo com o registro que deseja inserir fread(&alunocadastrado, sizeof(taluno), 1, Arquivo);//Lê os registros armazenados no arquivo e atribui para alunocadastrado if (feof(arquivo)){ //Caso percorra todos os registros e não encontre o número de matrícula cadastra o aluno fwrite(&aluno, sizeof(taluno), 1, Arquivo); //Escreve o registro no final do arquivo cout << "\naluno incluido com sucesso!"; else cout << "\nnumero ja cadastrado!"; fclose(arquivo); system ("pause > null"); 4.7) Programa que desativa (exclui) um registro em um arquivo O programa a seguir trabalha a exclusão lógica de um registro, ou seja, o campo que indica se ele está ativo é modificado para que o registro passe a não ser listado, quando se exibe o conteúdo do arquivo de dados. Neste programa também é trabalhada a função fseek() que posiciona o ponteiro dos registros no registro que se deseja alterar. #include <iostream.h> #include <stdio.h> struct Taluno{ int numero, ativo; char nome[30]; ; int main(){ FILE *Arquivo, *auxi; Taluno aluno; int numero; int contador; //Variável que conta a posição onde o registro procurando é encontrado if ((Arquivo = fopen ("Alunos.dat","a+")) == NULL){ //Abre o Alunos.dat no formato texto para anexo de informações cout << "Erro na abertura do arquivo"; else { cout << "\ndigite o numero do aluno: "; cin >> numero; contador=0; //Conta os registro até o final do arquivo enquanto não encontrar o numero
6 de aluno digitado while ((!feof(arquivo)) && ((numero!= aluno.numero) ((numero == aluno.numero) && (aluno.ativo!= 1)))){ fread(&aluno, sizeof(taluno), 1, Arquivo); contador++; if (feof(arquivo)) cout << "\naluno nao cadastrado!"; else { rewind(arquivo); //Coloca ponteiro de leitura dos registros no início do arquivo fseek(arquivo, contador*sizeof(aluno), SEEK_SET); //Posiciona o ponteiro no registro indicado pela variável contador aluno.ativo = 0; //Desativa o registro fwrite(&aluno, sizeof(taluno), 1, Arquivo); //Escreve o registro aluno no arquivo cout << "\nexclusao realizada com sucesso!"; fclose(arquivo); system ("pause > null"); 4.8) Programa lista os registros ativos em um arquivo O programa abaixo lista apenas os registros ativos no arquivo de dados. #include <iostream.h> #include <stdio.h> struct Taluno{ int numero, ativo; char nome[30]; ; int main(){ FILE *Arquivo; Taluno aluno; if ((Arquivo = fopen ("Alunos.dat","a+")) == NULL){ //Abre o Alunos.dat no formato texto para anexo de informações cout << "Erro na abertura do arquivo"; else { if (feof(arquivo)) cout << "\narquivo vazio!"; else { //Enquando não encontrar final do arquivo lista os registros while (!feof(arquivo)){ if (aluno.ativo == 1){ //Lista apenas registros ativos cout << "\nnome: " << aluno.nome; cout << "\nmatricula: " << aluno.numero; fread(&aluno, sizeof(taluno), 1, Arquivo); fclose(arquivo); system ("pause > null");
7 5) Roteiro: Examinando cuidadosamente os exemplos mostrados acima e o material de apoio realize as atividades a seguir: a) Tendo como base os exemplos apresentados, faça um programa para criar um arquivo chamado contas_bancarias.dat para armazenar registros compostos pelos seguintes campos: número da conta, nome do titular, saldo e data de abertura. b) Altere o programa anterior para incluir contas bancárias no arquivo criado, considerando que não deve haver duas contas bancárias com o mesmo número. c) Faça um programa para visualizar todas as contas bancárias inseridas no arquivo contas_bancarias.dat. d) Faça um programa, que implemente as funções do seguinte menu de opções: 1. Incluir uma conta bancária 2. Visualizar todas as contas bancárias 3. Visualizar o saldo de uma conta bancária 4. Alterar o saldo de uma conta bancária 5. Excluir uma conta bancária 6. Sair do programa Se der tempo faça também... e) Acrescente e implemente as seguintes funções ao programa da letra d): 7. Visualizar a conta com maior saldo 8. Visualizar as contas com saldo negativo
8 6) Manipulação de Arquivos Material de Apoio 6.1) Introdução Arquivos são estruturas de dados manipuladas fora da memória principal. Um arquivo, que é armazenado em um dispositivo de memória secundária, como discos, por exemplo, pode ser lido ou escrito por um programa. Um arquivo é formado por uma coleção de registros, cada registro é composto por campos e cada campo possui suas características específicas. Um ou mais campos desse registro é considerado campo-chave, que é o campo que diferencia um registro dos demais, evitando duplicidade de informações. Um sistema de banco de dados é composto por um ou vários arquivos, onde cada arquivo possui programas de manutenção que são: inclusão, exclusão lógica ou exclusão física, alteração, consulta geral, consulta específica e relatórios. Existem dois tios de exclusão de registros: a exclusão física, em que após a eliminação de um registro, os demais registros são deslocados, e a exclusão lógica, em que os registros possuem um campo adicional, identificando se os mesmos estão ativos ou inativos, isto é, se foram excluídos. 6.2) Entrada e saída com arquivo O sistema de E/S de C/C++ utiliza o conceito de streams e arquivos. Um stream é um dispositivo lógico que representa um arquivo ou dispositivo. Um stream é independente do arquivo ou dispositivo. Devido a isso, a função que manipula um stream pode escrever tanto em um arquivo no disco quanto em algum outro dispositivo, como o monitor. Existem dois tipos de streams: de texto e binária. Em um stream de texto podem ocorrer certas traduções de acordo com o sistema hospedeiro. Por exemplo, um caractere de nova linha pode ser convertido para os caracteres retorno de carro e alimentação de linha. Devido a isso pode não haver uma correspondência entre os caracteres da stream e do dispositivo externo; a quantidade de caracteres pode não ser a mesma. Um stream binário é uma seqüência de bytes com uma correspondência de um para um com os bytes encontrados no dispositivo externo. Isto é, não ocorre nenhuma tradução de caracteres. O número de bytes é o mesmo do dispositivo. Um arquivo é interpretado pela linguagem C/C++ como qualquer dispositivo, desde um arquivo em disco até um terminal ou uma impressora. Para utilizar um arquivo você deve associá-lo a um stream e, então, manipular o stream. Você associa um arquivo a um stream através de uma operação de abertura. Nem todos os arquivos tem os mesmos recursos. Por exemplo, um arquivo em disco pode suportar acesso aleatório enquanto um teclado não. Se o arquivo suporta acesso aleatório, abrí-lo inicializa o indicador de posição apontando para o começo do arquivo. Quando cada caractere é lido ou escrito no arquivo, o indicador de posição é incrementado. Um arquivo é desassociado de um stream através de uma operação de fechamento. Se um arquivo aberto para saída for fechado, o conteúdo de sua stream será escrito no dispositivo externo. Esse processo é geralmente chamado de descarga (flushing) da stream e garante que nenhuma informação seja acidentalmente deixada no buffer de disco. Um stream associa o arquivo a uma estrutura do tipo FILE ) Ponteiro para arquivo O ponteiro de arquivo une o sistema de E/S com um buffer. O ponteiro não aponta diretamente para o arquivo em disco e sim contém informações sobre o arquivo, incluindo nome, status (aberto, fechado) e posição atual sobre o arquivo. Para se definir uma variável ponteiro de arquivo usa-se o a seguinte declaração: FILE *Arquivo; Desta forma, passa a existir uma variável de nome Arquivo que é ponteiro de arquivo.
9 Tabela 3 - Funções mais comuns no sistema de E/S ANSI Função Ação fopen() abre um arquivo fclose() fecha um arquivo putc() e fputc() escreve um caractere em um arquivo getc() e fgetc() lê um caractere em um arquivo fseek() posiciona em um registro do arquivo fprintf() impressão formatada em arquivo fscanf() leitura formatada em arquivo feof() verifica o final de arquivo fwrite() escreve tipos maiores que 1 byte em um arquivo fread() lê tipos maiores que 1 byte em um arquivo 6.2.2) Abrindo arquivo A função que abre arquivo em C é a função fopen( ). Ela devolve NULL (nulo) ou um ponteiro associado ao arquivo, devendo ser passado para função o nome físico do arquivo e o modo como este arquivo deve ser aberto. Exemplo: Arquivo = fopen("teste.dat","w"); Com a instrução anterior, está sendo aberto um arquivo de nome "Teste.dat", no disco, habilitado apenas para escrita (write). Utilizando técnicas de verificação, poderemos codificar a instrução anterior da seguinte maneira: if ((Arquivo = fopen("teste.dat","w")) == NULL) { puts ("Arquivo nao pode ser aberto..."); Tabela 4 - Valores legais para MODO de Abertura de arquivo Modo Ação R abre um arquivo texto para leitura W cria um texto para escrita A anexa um arquivo texto Rb abre um arquivo binário para leitura Wb cria um arquivo binário para escrita Ab anexa um arquivo binário r+ abre texto para leitura/escrita w+ cria texto para leitura/escrita a+ anexa texto para leitura/escrita r+b abre um arquivo binário para leitura/escrita w+b cria um arquivo binário para leitura/escrita a+b anexa um arquivo binário para leitura/escrita 6.2.3) Fechando um arquivo A função que fecha e esvazia o buffer de um arquivo é a função fclose( ), que associa-se diretamente ao nome lógico do arquivo (STREAM). Exemplo: fclose(arquivo); Esse comando escreve qualquer dado que ainda permanece no buffer de disco no arquivo e o fecha em nível de sistema operacional. Uma falha ao fechar um stream pode provocar problemas tipo perda de dados, arquivos destruídos e erros intermitentes em seu programa. O fclose também libera o bloco de controle de arquivo associado ao stream, deixando-o disponível para reutilização. Como, normalmente, há um limite do sistema operacional para o número de arquivos abertos ao mesmo tempo, você deve fechar um arquivo antes de abrir outro ) Escrevendo e lendo caracteres Para escrever um caractere num arquivo aberto, deve-se usar duas funções: putc( ) ou fputc( ). Elas são idênticas. Existem as duas para preservar a compatibilidade com versões mais antigas de C/C++. É lógico que para escrever num arquivo este deve ter sido aberto num modo que permita a escrita. A sintaxe para escrever é:
10 putc(caracter, ARQUIVO); Onde CARACTER é o caractere a ser escrito no arquivo e ARQUIVO é um ponteiro de arquivo. Se ocorrer tudo bem, a função retorna o caractere escrito, caso contrário ela retorna EOF (fim do arquivo). Para ler um caractere temos também duas funções: getc( ) e fgetc( ). Existem duas também pelo motivo da compatibilidade com versões mais antigas da linguagem. O arquivo deve ter sido aberto num modo que permita a leitura. A sintaxe é: getc(arquivo); Onde ARQUIVO é um ponteiro de arquivo. Quando o final do arquivo é alcançado a função devolve EOF. Para ler o conteúdo de um arquivo você poderia usar um trecho de código parecido com: do { caractere = getc(arquivo); while(caractere!= EOF); Sendo caractere uma variável char e arquivo uma variável ponteiro para uma estrutura FILE. É importante observar que getc também devolve EOF caso ocorra algum erro. /* Programa que efetua leitura do arquivo e apresenta na tela */ #include <conio2.h> int main ( ){ FILE *Arquivo; char Nome[20]; signed char Caractere; clrscr (); printf ("Nome do arquivo-> "); gets (Nome); if ((Arquivo = fopen(nome,"r+")) == NULL){ std::cout <<"Erro de abertura\n"; std::cout <<"Arquivo: %s"<< Nome; Caractere = getc(arquivo); while (Caractere!= EOF){ putchar (Caractere); Caractere = getc(arquivo); fclose (Arquivo); system("pause");
11 6.2.5) Verificando o final de um arquivo binário Quando manipulando dados binários um valor inteiro igual a EOF pode ser lido por engano. Isso poderia fazer com que fosse indicado o fim de arquivo antes deste ter chegado. Para resolver este problema C/C++ inclui a função feof( ) que determina quando o final de um arquivo foi atingido. Ela tem a seguinte sintaxe: feof(arquivo); onde ARQUIVO é um ponteiro de arquivo. Esta função devolve verdadeiro caso o final de arquivo seja atingido; caso contrário ela devolve 0. Para ler um arquivo binário você poderia usar o seguinte trecho de código: while(!feof(arquivo)) caracter = getc(arquivo); /* programa que copia arquivo */ #include <conio2.h> int main( ){ FILE *Arquivo1,*Arquivo2; char caractere, Original[20], Copia[20]; clrscr(); printf("\n Nome do arquivo de origem -> "); gets(original); printf("\n Nome do arquivo de destino -> "); gets(copia); if ((Arquivo1 = fopen (Original,"rb")) == NULL){ std::cout << "Erro abertura do arquivo 1\n"; std::cout << "Arquivo : %s\n" << Original; if ((Arquivo2 = fopen (Copia,"wb")) == NULL){ std::cout << "Erro abertura do arquivo 2\n"; std::cout << "Arquivo : %s\n" << Copia; if(strcmp(original,copia) == 0){ printf("\no nome do arquivo original não pode ser igual ao da cópia.\n\n"); getch(); exit(1); ; while(!feof(arquivo1)){ caractere = getc(arquivo1); if(!feof(arquivo1)) putc(caractere,arquivo2); fclose(arquivo1); fclose(arquivo2); printf("\n%s copiado com sucesso com o nome de %s.\n\n",original,copia); system ("pause");
12 return(0); 6.2.6) Escrevendo e lendo strings Para escrever e ler strings em um arquivo deve-se utilizar as funções fputs( ) e fgets( ). A função fputs( ) escreve uma string no stream especificado, sua sintaxe é: fputs(string,arquivo); onde ARQUIVO é um ponteiro de arquivo. Caso ocorra algum erro esta função retorna EOF. A função fgets( ) lê uma string do stream especificado. Sua sintaxe é: fgets(string,tamanho,arquivo); Ela lê STRING até que um caractere de nova linha seja lido ou que TAMANHO - 1 caracteres tenham sido lidos. Se uma nova linha é lida ela será parte da string. A string resultante terminará em nulo. Caso ocorra tudo bem esta função retornará um ponteiro para STRING, caso contrário, retornará um ponteiro nulo ) Apontando para o início do arquivo Para apontar para o início do arquivo utiliza-se a função rewind( ). Sua sintaxe é: sendo ARQUIVO um ponteiro de arquivo. rewind(arquivo); /* Programa que escreve strings em um arquivo. * Para encerrar o programa o usuário deverá inserir uma linha em branco. * Como gets() não armazena o caractere de nova linha, é adicionado um antes da string * ser gravada no arquivo. Isto é feito para que a string possa ser lida, posteriormente, * com fgets() já que esta função lê a string até que seja encontrado um caracter de nova * linha. */ #include <conio2.h> int main( ){ char string[80]; char Caractere, Nome[20]; FILE *arquivo; clrscr(); printf("nome do arquivo-> "); gets(nome); if ((arquivo = fopen (Nome,"ab")) == NULL){ std::cout << "Erro abertura\n"; std::cout << "Arquivo : %s\n" << Nome; do{ gets(string); strcat(string,"\n");
13 fputs(string,arquivo); while(*string!= '\n'); fclose(arquivo); puts("arquivo fechado! Tecle ENTER "); getch(); return(0); 6.2.8) Verificando erros Para determinar se uma operação com o arquivo produziu um erro utiliza-se a função ferror( ), e sua sintaxe é: ferror(arquivo); sendo ARQUIVO um ponteiro de arquivo. Esta função retorna verdadeiro se ocorreu um erro durante a última operação com o arquivo, caso contrário retorna falso. Como cada operação modifica a condição de erro, ela deve ser chamada logo após cada operação realizada com o arquivo ) Apagando um arquivo Para apagar uma arquivo utiliza-se a função remove( ). Sua sintaxe é: sendo ARQUIVO um ponteiro de arquivo. /* programa que apaga um arquivo */ #include <conio2.h> int main( ){ char opcao, Nome[20]; clrscr(); printf("nome do arquivo-> "); gets(nome); remove(arquivo); printf("deseja realmente apagar o arquivo %s (S/N)?",Nome); opcao = getch(); if(toupper(opcao) == 'S') if(remove(nome)){ printf("erro ao tentar apagar arquivo.\n"); getch(); exit(1); else printf("arquivo apagado com sucesso.\n"); system("pause"); return(0); ) Renomeando ou movendo um arquivo Para renomear um arquivo utiliza-se a função rename( ). Sua sintaxe é: rename(nome_antigo, NOVO_NOME);
14 onde NOME_ANTIGO e NOVO_NOME são ponteiros string. Se a função for bem sucedida ela retornará zero, caso contrário, retornará um valor diferente de zero. Esta mesma função serve para mover um arquivo. Basta incluir a nova localização como parte do NOVO_NOME do arquivo. /* renomeando ou movendo um arquivo */ #include <conio2.h> int main( ){ char Nome1[20], Nome2[20]; clrscr(); printf("nome do arquivo original -> "); gets(nome1); printf("novo nome para o arquivo -> "); gets(nome2); if(rename(nome1, Nome2)) printf("erro ao renomear arquivo!\n"); system("pause"); return(0); ) Esvaziando um stream Para esvaziar o conteúdo de um stream aberto para saída utiliza-se a função fflush(). Sua sintaxe é: fflush(arquivo); sendo ARQUIVO um ponteiro de arquivo. Ela escreve o conteúdo do buffer para o arquivo passado como argumento. Se for passado um valor nulo, todos os arquivos abertos para saída serão descarregados. Se tudo ocorrer bem fflush retornará zero, indicando sucesso. Caso contrário, devolverá EOF ) Escrevendo e lendo tipos de dados definidos pelo usuário C/C++ permite que o usuário crie seus próprios tipos de dados. Estes tipos de dados são estruturas compostas de tipos de dados simples e com estas estruturas pode-se construir registros. Para escrever e ler estas estruturas pode-se usar as funções fread( ) e fwrite( ). A sintaxe de fread( ) é: onde: fread(variável,tamanho,quantidade,arquivo); - VARIÁVEL é o endereço da variável que receberá os dados lidos do arquivo; - TAMANHO é o número de bytes a ser lido. Para calcular isso você deve usar o operador sizeof ; - QUANTIDADE indica quantos itens serão lidos (cada item do tamanho de TAMANHO) ; - ARQUIVO é um ponteiro para o arquivo aberto anteriormente. A sintaxe para fwrite( ) é idêntica, com a exceção que VARIÁVEL é o endereço da variável com os dados a serem escritos no arquivo. O ponteiro de arquivo "ARQUIVO" deve ser aberto em modo binário, para podermos ler e escrever qualquer tipo de informação. Também deve ser aberto de acordo com a operação a ser feita (leitura ou escrita).
15 fread devolve o número de itens lidos. Esse valor poderá ser menor que QUANTIDADE se o final do arquivo for atingido ou ocorrer um erro. fwrite devolve o número de itens escritos. Esse valor será igual a QUANTIDADE a menos que ocorra um erro. Para exemplificar o trabalho com estruturas (registros) e arquivos em C/C++, segue um programa que lê estruturas de dois campos (Nome e Telefone) e grava um arquivo denominado "Dados.dat". Este processo é terminado com a digitação do campo Nome vazio; então o programa apresenta todos os registros do arquivo que acaba de ser gerado. /* Exemplifica o uso de fread() e fwrite() em arquivos */ #include <conio2.h> // Definindo o registro typedef struct{ char Nome[30]; long int Telefone; Registro; int main ( ){ Registro Clientes; FILE *Arquivo; char Auxiliar[5]; clrscr (); //Abrindo o arquivo if ((Arquivo = fopen ("Dados.dat","w+b")) == NULL){ puts ("Erro na abertura do arquivo"); getch(); puts ("Digite enter no NOME para terminar"); puts (""); // Lendo e gravando o registro do{ printf ("\nentre um nome... : "); gets (Clientes.Nome); printf ("Entre com telefone : "); if (strcmp (Clientes.Nome,"")!= 0){ gets (Auxiliar); Clientes.Telefone = atol(auxiliar); fwrite (&Clientes, sizeof(registro), 1, Arquivo); while (strcmp(clientes.nome,"")!= 0); // Posicionando no inicio do arquivo para listagem geral rewind (Arquivo); printf ("\n\nlistagem do arquivo\n"); puts (" \n"); printf ("%-20s %10s\n", "NOME", "TELEFONE"); while (!feof (Arquivo)){ fread (&Clientes, sizeof(registro), 1, Arquivo); if (!feof (Arquivo)) printf("%-20s %10ld\n",Clientes.Nome,Clientes.Telefone); getch ();
16 6.2.13) Apontando para uma posição específica dentro do arquivo Você pode apontar para um byte específico dentro do arquivo movimentando o indicador de posição. Isto pode ser feito com o uso da função fseek( ),cuja sintaxe é: fseek(arquivo, NÚMERO_DE_BYTES, ORIGEM); onde ARQUIVO é um ponteiro de arquivo aberto anteriormente, NÚMERO_DE_BYTES é a quantidade de bytes que o indicador de posição será movimentado e ORIGEM é a partir de onde o movimento do indicador de posição iniciará. ORIGEM deve ser uma das seguintes macros: SEEK_SET permite a movimentação de NUMERO_DE_BYTES a partir da posição inicial do arquivo; SEEK_CUR permite a movimentação de NUMERO_DE_BYTES a partir da posição atual do arquivo; SEEK_END permite a movimentação de NUMERO_DE_BYTES a partir da posição final do arquivo. /* Exemplifica a Manutencao de arquivo sequencial */ #include <conio2.h> // Definindo o registro typedef struct{ char Nome[30]; char Telefone[15]; int Status; Registro; // Ponteiro para o arquivo FILE *Arquivo; // Protótipo para funções int Insere (Registro Dados); void Lista (void); int Retira (Registro Dados); void Entra (Registro *Dados); int Consulta (Registro *Dados); char Menu (void); void Mensagem (char *Aviso); void Escreve (char *Cadeia); // Função principal int main ( ){ Registro Clientes; char Opcao; clrscr (); // Abertura do arquivo if ((Arquivo = fopen ("Clientes.dat", "rb+")) == NULL) if ((Arquivo = fopen ("Clientes.dat", "wb+")) == NULL){ puts ("Erro na abertura do arquivo"); do{ Opcao = Menu(); printf ("\n\n"); switch (Opcao){
17 case '1' : Escreve ("Inserção"); Entra (&Clientes); if (Insere (Clientes)) Mensagem ("Insercao OK"); else Mensagem ("Erro na insercao\n"); break; case '2' : Escreve ("Remoção"); printf ("\n Entre com um nome... :"); gets (Clientes.Nome); if (Retira (Clientes)) Mensagem ("Remocao OK\n"); else Mensagem ("Erro na remocao\n"); break; case '3' : Escreve ("Lista"); Lista (); break; case '4' : Escreve ("Consulta"); printf ("\n Entre com um nome... :"); gets (Clientes.Nome); if (Consulta (&Clientes)){ printf ("\nnome: %-30s, TEL: %-15s\n\n", Clientes.Nome, Clientes.Telefone); Mensagem (""); else Mensagem ("NOME nao encontrado\n"); while (Opcao!= '5'); puts ("fim do programa..."); fclose (Arquivo); system("pause"); // Implementação das funções e sub-rotinas // Desenha menu na tela char Menu (void){ clrscr (); gotoxy (1,1); puts ("MENU : "); puts ("1. Insere "); puts ("2. Retira "); puts ("3. Lista "); puts ("4. Consulta"); puts ("5. Fim"); printf ("\nescolha ==>"); return getch (); // Escreve uma mensagem na tela void Mensagem (char *Aviso){ gotoxy (1,23); puts (Aviso); gotoxy (1,24); puts ("Digite qualquer tecla..."); getch (); // Escreve uma string numa posição da tela void Escreve (char *Cadeia){ textbackground (15);
18 textcolor (0); gotoxy (12,8); cputs (Cadeia); textbackground (0); textcolor (7); // Lê os dados do registro void Entra (Registro *Dados){ printf ("\n Entre com um nome... :"); gets (Dados->Nome); printf (" Entre com um telefone :"); gets (Dados->Telefone); Dados->Status = 1; // Grava o registro int Insere (Registro Dados){ if (!fseek (Arquivo, 0, SEEK_END)){ fwrite (&Dados, sizeof (Registro), 1, Arquivo); return 1; // Retira o registro int Retira (Registro Dados){ Registro Auxiliar; fseek (Arquivo, 0, SEEK_SET); while (!feof (Arquivo)){ fread (&Auxiliar, sizeof(auxiliar), 1, Arquivo); if (!strcmp (Auxiliar.Nome, Dados.Nome) && (Auxiliar.Status)){ Auxiliar.Status = 0; fseek (Arquivo, -1L*sizeof (Registro), SEEK_CUR); if (fwrite (&Auxiliar, sizeof (Registro), 1, Arquivo)) return 1; // Lista o conteúdo de um arquivo void Lista (void){ Registro Auxiliar; char Traco[47]; int Linha = 11; // posiciona no topo do arquivo rewind (Arquivo); gotoxy (1,9); printf ("\n%-30s %-15s", "Nome", "Telefone"); while (!feof (Arquivo)){ fread (&Auxiliar, sizeof(registro), 1, Arquivo); if ((Auxiliar.Status) && (!feof (Arquivo)) && (Linha <= 22)){ gotoxy (1, Linha); printf ("\n%-30s %-15s",Auxiliar.Nome, Auxiliar.Telefone); Linha++; if (Linha == 22){ Linha = 11; Mensagem (""); clrscr();
19 Mensagem (""); printf ("\n\n"); // Consulta um registro int Consulta (Registro *Dados){ Registro Auxiliar; fseek (Arquivo, 0, SEEK_SET); while (!feof (Arquivo)){ fread (&Auxiliar, sizeof (Registro), 1, Arquivo); if (!strcmp (Auxiliar.Nome, Dados->Nome) && (Auxiliar.Status)){ *Dados = Auxiliar; return 1;
Programação para Computação 13ª Aula
Programação para Computação 13ª Aula Arquivos em C O sistema de E/S da linguagem C utiliza o conceito de streams e arquivos, como um nível de abstração entre o programador e o dispositivo utilizado. Uma
Leia maisComputação 2. Aula 8. Profª. Fabiany Arquivos
Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia mais13a. Aula Manipulação de arquivos
13a. Aula Manipulação de arquivos 2013.2 O sistema de entrada e saída do ANSI C é composto por uma série de funções (fopen, fprintf, fgets, fclose) cujos protótipos estão reunidos em stdio.h Todas estas
Leia maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisAlgoritmos e Estruturas de Dados II IEC013
Algoritmos e Estruturas de Dados II IEC013 Linguagem C - Arquivos - Prof. César Melo cavmelo@dcc.ufam.edu.br Slides preparados pelo Prof. Leandro Galvão galvao@dcc.ufam.edu.br Conceitos iniciais Um arquivo
Leia maisComputação 2. Aula 9. Diego Addan Arquivos
Computação 2 Aula 9 Arquivos Diego Addan diegoaddan@gmail.com E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca
Leia maisArquivos em C. Material da Prof. Ana Eliza
em C Material da Prof. Ana Eliza Definição Um arquivo é uma estrutura de dados linear ( lista ) que é mantida fora da memória principal, em um dispositivo de armazenamento (memória secundária). Um arquivo
Leia maisAula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU
Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos Profa. Elaine Faria UFU - 2017 Uso da Memória Secundária Em muitos casos necessitamos da memória secundária (auxiliar), para armazenar informações
Leia maisAula 16: Manipulação de Arquivos em C
Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33
Leia maisLINGUAGEM C: ARQUIVOS
LINGUAGEM C: ARQUIVOS Prof. André Backes ARQUIVOS Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial; Acesso
Leia maisProgramação II. Arquivos - Conceito. Arquivos
Programação II Arquivos Jocélio Passos joceliodpassos@bol.com.br C Comp Total, Cap 9 Espaço para armazenar dados em memória auxiliar (não volátil) Arquivos em C podem ser também terminais ou impressoras
Leia maisManipulação de Arquivos
Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo
Leia maisAula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos
Aula: ARQUIVOS Introdução à Ciência da Computação I Simone Senger Souza ICMC/USP São Carlos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem
Leia maisExiste uma quantidade de informação que pode ser armazenada para resolver o problema.
Arquivos Introdução As estruturas vistas anteriormente armazenam as informações na memória principal do computador. Nem sempre é conveniente. Problemas: A informação é perdida; As estruturas de dados são
Leia maisIntrodução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Leia maisLINGUAGEM C: ARQUIVOS
LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;
Leia maisComputação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
Leia maisManipulação de Arquivos
Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Manipulação de Arquivos Linguagem de Programação Estruturado Sumário Introdução; E/S ANSI Versus E/S UNIX; E/S em C Versus E/S
Leia maisArquivos em C Parte 2
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C Parte 2 Profa Rosana Braga Material preparado pela profa Silvana Maria Affonso de Lara 1º semestre de
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO Arquivo Conceitos Arquivo Fluxo de bytes stream Linguagem C Estrutura do tipo FILE FILE contém informações do arquivo Tamanho Ponteiro para buffer dados Atual operação sobre o arquivo
Leia maisE/S em Arquivo. Para ler ou escrever arquivos é preciso usar ponteiros de arquivo. Um ponteiro de arquivo é uma variável ponteiro do tipo FILE:
E/S em Arquivo A linguagem C não contém nenhum comando de E/S. O sistema de E/S de C provê um nível de abstração entre o programador e o dispositivo utilizado. Abstração stream Dispositivo real arquivo
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Arquivos em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Arquivos
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO
Leia maisLinguagem C. Armazenamento de Dados em Arquivos - Continuação
Linguagem C Armazenamento de Dados em Arquivos - Continuação Arquivos Binários Comandos para gravação e leitura de arquivos (revisão): FILE *arquivo; arquivo = fopen( nome, modo ); fwrite (&variavel, sizeof
Leia maisStructs, Ponteiros e Arquivos. Prof. Maurício Dias
Structs, Ponteiros e Arquivos Prof. Maurício Dias Registros e structs Um registro (= record) é uma coleção de várias variáveis, possivelmente de tipos diferentes. Na linguagem C, registros são conhecidos
Leia maisSSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido
SSC 301 - INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS Profa. Dra. Milena Guessi Margarido (milena@icmc.usp.br) Número Bairro CEP Cidade Logradouro Endereço País REGISTRO Estrutura
Leia maisArquivos. Programação de Computadores I. Natália Batista.
Arquivos Programação de Computadores I Natália Batista nataliabatista@decom.cefetmg.br 1. Arquivos Estruturas de dados armazenadas fora da memória principal do computador, por exemplo em discos. Usados
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.
CURSO BÁSICO DE PROGRAMAÇÃO AULA 17 Manipulação de arquivos binários. Revisão Abrindo arquivos de texto em C FILE *arquivo = fopen(, ); FILE: Tipo do objeto de arquivo. fopen: Função
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Manipulação de arquivos Prof. Renato Pimentel 1 Introdução Até o momento, trabalhamos com programas que utilizam apenas a memória
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia maisProgramação de Computadores
Programação de Computadores Arquivos Prof. Fabio Henrique N. Abe fabio.henrique.abe@gmail.com 99642-5002 http://www.comp.uems.br/~fhna/ Exercícios 1 de Agora valendo 2,0 dos trabalhos para a P4! Entrega
Leia maisArquivos em C. Notas de Aula. Prof. Francisco Rapchan
Arquivos em C Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan Há várias definições para arquivos em computação. Uma das mais usadas é a de que um arquivo é um conjunto de registros
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Arquivos Copyright 2014 IFRN Agenda Conceito Tipos de arquivos Texto Binário Stream Principais funções Exemplos
Leia maisEstruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 15 - Arquivos 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include
Leia mais9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II
Introdução à Computação II 5952011 9. Arquivos em C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 9. Arquivos em C 9.1. Introdução 9.2. Escrita 9.3. Leitura
Leia maisMétodos Computacionais. Arquivos
Métodos Computacionais Arquivos Arquivos Um arquivo representa um elemento de informação armazenado em memória secundária (disco) Características: Informações são persistidas Atribui-se nomes aos elementos
Leia maisManipulação de Arquivos
Manipulação de Arquivos Devemos iniciar nossa explanação pelo conceito de arquivo: Arquivo é uma unidade lógica utilizada para armazenar dados em disco ou em qualquer outro dispositivo externo de armazenamento.
Leia maisSSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Arquivos GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos
Leia maisLaboratório de Introdução à Ciência da Computação I
Laboratório de Introdução à Ciência da Computação I Aula 13 Arquivos Professores: Jó Ueyama 10/06/10 1 Stream de texto Arquivo: tipo texto Um arquivo texto é uma sequência de linhas, onde cada linha contém
Leia maisIntrodução a Programação. Manipulando Arquivos em Modo Texto
Introdução a Programação Manipulando Arquivos em Modo Texto Tópicos da Aula Hoje aprenderemos funções de manipulação de arquivos texto Funções de leitura em modo texto Funções de escrita em modo texto
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisProgramação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO
Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO Introdução As informações que os programas utilizam são perdidas quando eles são finalizados ou quando o computador é desligado.
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisC Arquivos. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ
C Arquivos Adriano Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Fluxos de Dados Arquivos Funções de Entrada e Saída Abrindo um
Leia maisAula 26 - Arquivos. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca
Programação I Aula 26 - Prof. Laura Silva de Assis Engenharia da Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2 o semestre - 2015 1 Sumário
Leia maisProgramação Computacional Aula 17: Manipulação de arquivos
Programação Computacional Aula 17: Manipulação de arquivos Profa. Madeleine Medrano madeleine@icte.uftm.edu.br Arquivos de registros Os dados manipulados pelos nossos programas (dados de entrada, dados
Leia maisSequência de informações binárias armazenadas num dispositivo de armazenamento permanente. Em geral os bits são agrupados em grupos de 8 (1 byte)
Arquivos Apesar da organização física sequencial dos bytes no arquivo, podemos em cima desta organização básica implementar outros tipos de estruturação para uma arquivo Arquivo Sequência de informações
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental
USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental 1 Prof. Dr. Fernando Santos Osório / Prof. Artur Lovato Cunha LRM - Laboratório de Robótica Móvel
Leia maisAlocação Dinâmica de Memória - Exercício Escreva um programa em C que manipule um vetor de inteiros não nulos alocado dinamicamente.
1 Alocação Dinâmica de Memória - Exercício Escreva um programa em C que manipule um vetor de inteiros não nulos alocado dinamicamente. O programa recebe inteiros, através da entrada padrão, e os insere
Leia maisDepuração e Teste de programas C C Depuração e teste de programas C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Depuração e Teste de programas C C Depuração e teste de programas C Profa Rosana Braga (adaptado de material do prof.
Leia maisDisciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia mais1 Escrita de Arquivos Binário
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula prática sobre arquivos binários 1 Escrita de Arquivos Binário Esta aula será sobre escrita e leitura de arquivos binários. Nesta
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisLinguagem C: Arquivo-Texto
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução em C 2 3 Organização Introdução em C 1 Introdução em C 2 3 Introdução
Leia maisArquivos. Estruturas de Dados II Vanessa Braganholo
Arquivos Estruturas de Dados II Vanessa Braganholo Entidades } Aplicações precisam armazenar dados sobre as mais diversas entidades, que podem ser concretas ou abstratas } Funcionário de uma empresa (concreto)
Leia mais3.1 - Funções para manipular dados de entrada e saída padrão
1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado
Leia mais1/22 FICHEIROS BINÁRIOS
1/22 FICHEIROS BINÁRIOS Funções para manipulação de ficheiros 2/22 Funções para manipulação de ficheiros fopen abertura de um ficheiro para leitura/entrada e escrita/saída fclose fecho de um ficheiro fwrite
Leia maisProgramação de Computadores II
Programação de Computadores II Slides cedidos por Karina Mochetti 2018.1 Arquivos Arquivos 'a' ' ' '4' '2' ' ' 'C' 'A' K' 'E' 'a' 42 "CAKE" 0x6120 0x3432 0x2043 0x414B 0x45 Arquivos de Texto vs Arquivos
Leia maisIntrodução a Programação. Arquivos
Introdução a Programação Arquivos Tópicos da Aula Hoje aprenderemos a persistir dados Conceito de arquivos Importância de persistência Modos de acesso de arquivos em C Operações em arquivos Funções de
Leia maisAula de Arquivos. Jesimar da Silva Arantes. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP
Aula de Arquivos Jesimar da Silva Arantes Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos, SP Estagiário PAE: Jesimar da Silva Arantes Professor: Claudio Fabiano
Leia maisAlocação Dinâmica de Memória - Exercício
Alocação Dinâmica de Memória - Exercício Construa um programa que leia da entrada padrão o número de linhas e de colunas de uma matriz de floats, aloque espaço dinamicamente para esta e a inicialize, com
Leia maisLeitura de Arquivos. Prof. Fabrício Olivetti de França
Leitura de Arquivos Prof. Fabrício Olivetti de França Leitura de Arquivos Na linguagem C temos um tipo especial chamado FILE para trabalhar com arquivos. Abrindo e fechando um arquivo Para abrir um arquivo
Leia maisProgramação II. Files Read & Write. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Files Read & Write Bruno Feijó Dept. de Informática, PUC-Rio Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar um volume de dados muito grande Imagine
Leia maisCapítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
Leia maisLinguagem de Programação
Linguagem de Programação Funções para Manipulação de Arquivos Gil Eduardo de Andrade Introdução Na última aula foram apresentados e definidos: o conceito de arquivo e seus modos de abertura, o ponteiro
Leia maisRogério Rodrigues de Vargas
OPERAÇÕE COM ARQUIVO EM C/C++ Rogério Rodrigues de Vargas Roteiro o da Aula ua U M ÁRIO Objetivos Conhecer os aspectos básicos de operações com arquivos I N T RODUÇÃO Dominar o processo de descrição e
Leia maisLinguagem de Programação
Linguagem de Programação Manipulando Arquivo de Texto Gil Eduardo de Andrade Arquivos Introdução Em linguagem C um arquivo pode ser utilizado para representar vários recursos, desde um arquivo de texto
Leia maisFundamentos de Programação
Fundamentos de Programação CP41F Operações de abertura, leitura e finalização de arquivos. Aula 32 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação
Leia maisUniversidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e
Leia maisLinguagem C arquivos. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná
Linguagem C arquivos IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Ponteiros
Leia maisProgramação de Computadores I. Linguagem C Arquivos
Linguagem C Arquivos Prof. Edwar Saliba Júnior Novembro de 2011 Unidade 12 Arquivos 1 Trabalhando com Arquivos Um arquivo em Linguagem C pode representar diversas coisas, como: arquivos em disco, uma impressora,
Leia maisManipulação de Arquivos
394 Podemos escrever e ler blocos de dados em um determinado arquivo. Para tanto, a linguagem C, disponibiliza as funções fread() e fwrite(). - fread Manipulação de Arquivos O protótipo de fread() é: unsigned
Leia maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação
Leia maisFaculdade de Computação
Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos
Leia maisManipulação de Arquivos Binários
Introdução à Computação I Departamento de Física e Matemática FFCLRP-USP Prof. Dr. José Augusto Baranauskas IBm1006 1º Semestre/2006 Notas de Aula Manipulação de Arquivos Binários Até agora vimos como
Leia maisManipulação de Arquivos. Técnicas de Programação
Manipulação de Arquivos Técnicas de Programação Agenda do Dia Noções de Manipulação de Arquivos Ponteiros para Arquivos Abrindo Arquivos Fechando Arquivos Exercícios Lendo e Escrevendo em Arquivos Noções
Leia maisArrays, Criação de Funções, Estruturas e Manipulação de Arquivos.
Faculdade de Engenharia da Computação Disciplina: Lógica de Programação Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos. Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
Leia mais1/24 FICHEIROS DE TEXTO
1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisOperações com Arquivos
Operações com Arquivos Programação de Computadores I Emiliana Mara Lopes Simões simoes.eml@gmail.com Universidade Federal de Ouro Preto dezembro 2009 Arquivos Os arquivos são utilizados para armazenamento
Leia mais1 Arquivos em C. CEFETES Serra - Programação II Mateus Costa Notas de Aula - Arquivos
CEFETES Serra - Programação II Mateus Costa Notas de Aula - Arquivos 1 Arquivos em C O objetivo deste capítulo e permitir a construção de programas que armazenem dados de forma permanente em dispositivos
Leia maisARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ARQUIVOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ARQUIVO Arquivo é um conjunto de dados, dispostos de forma sequencial Arquivo Programa INSTITUTO DE COMPUTAÇÃO - UFF 2 STREAM Leitura e
Leia maisManipulação de arquivos
246 Arquivo En4dade básica do sistema operacional (SO). Estrutura que armazena informação de forma não volá4l em disposi4vos de memória permanente. Após sua criação, podem ser acessados e modificados por
Leia maisAula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU
Aula 9 Oficina de Programação Strings Profa. Elaine Faria UFU - 2017 String Cadeia de caracteres (ou String) É uma seqüência de letras e símbolos, na qual os símbolos podem ser espaços em branco, dígitos
Leia maisArquivos Binários UFOP 1/25
BCC 201 - Introdução à Programação I Arquivos Binários Guillermo Cámara-Chávez UFOP 1/25 Arquivos Binários: typedef, structs em Arquivos I t y p e d e f s t r u c t Dados { i n t dia, mes, ano ; d o u
Leia maisComputação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};
Leia maisMC-102 Aula 24 Arquivos em C e Parâmetros do Programa
MC-102 Aula 24 Arquivos em C e Parâmetros do Programa Instituto de Computação Unicamp 3 de Novembro de 2016 Roteiro 1 Arquivos Introdução a Arquivos em C Nomes e Extensões Tipos de Arquivos Caminhos Absolutos
Leia maisDICA: Preste bastante atenção nas funções de manipulação de arquivos e verás que você já utiliza arquivos desde a primeira aula.
Capítulo 5 Arquivos 5.1 Introdução Todos os programas codificados até o momento podem armazenar dados de maneira temporária. Isto é, utilizamos a memória principal (RAM) como unidade de armazenamento.
Leia maisCapítulo 06: Arquivos
Capítulo 06: Arquivos INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar
Leia maisLÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior
LÓGICA DE PROGRAMAÇÃO Resumo da Linguagem C Sérgio Carlos Portari Júnior Tipos de dados mais usados em C Inteiro int 2 bytes Real float 4 bytes Caractere char 1 byte String não existe* xxxxxxx Booleano
Leia maisLISTA DE EXERCÍCIOS MÊS 03
São José dos Campos, 21 de Maio de 2008 Disciplina: CES 10 Introdução à Computação. Semestre 2008-2º Período Professor: Carlos Henrique Quartucci Forster Estagiária: Michelle de Oliveira Parreira Instituto
Leia maisApêndice B. Cadeias de Caracteres (Strings)
Apêndice B. Cadeias de Caracteres (Strings) Até agora, quando desejávamos indicar o número de elementos existentes em um vetor qualquer, utilizávamos uma variável inteira, digamos tam, para armazenar tal
Leia maisProgramação Estruturada II
Programação Estruturada II Arquivos I/O Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Depuração e Documentação
Leia maisProgramação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.
Programação Folha Prática 10 Lab. 10 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 10 10ª semana
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisReferências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.
Programação de Computadores II Arquivos Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 15 Arquivos Slides da profa. Paula
Leia mais