Módulo 2. Acesso a Arquivos. Métodos e Algoritmos Computacionais C++ (Rone Ilídio)



Documentos relacionados
Manipulação de Arquivos

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

C++ - Operações com arquivos

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Computação L2. Arquivos. Observação: Material da Disciplina Computação Eletrônica CIN/UFPE.

Aula 28: Arquivos de texto

5 -a. Manipulação de arquivos em C++

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

10. INPUT/OUTPUT (I/O)

Manipulação de Arquivos

Componentes da linguagem C++

Computação e Programação Aula prática nº 5. Enunciados dos problemas

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

Arquivos. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

Operações com Arquivos

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Pilhas. Profa Morganna Diniz

Módulo 4. Instruções for, while e do/while. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Estrutura de Dados Básica

Processamento de Arquivos. Escrita Leitura Ponteiros de Posição Arquivos de Acesso Aleatório Exemplos

Algoritmos e Programação _ Departamento de Informática

Linguagem de Programação I

Capítulo 2: Introdução à Linguagem C

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Programação de Computadores I. Linguagem C Arquivos

Manipulação de Arquivos Binários

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

Algoritmos e Técnicas de

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Fundamentos de Arquivos. SCC203 Algoritmos e Estruturas de Dados II

Introdução a Computação

Algoritmos e Programação

Técnicas de Programação I

Algoritmos e Estruturas de Dados I. Arquivos. Pedro O.S. Vaz de Melo

V - Lista de Exercícios de SO e Lab. 1-) Escreva um programa em C para criar um arquivo texto, com informações fornecidas pelo usuário não formatadas.

Curso de C para Engenharias

Fundamentos de Programação II. Introdução à linguagem de programação C++

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

Olimpíadas de Informática

INF 1005 Programação I

Programação e Sistemas de Informação

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Engenharia de Software

Arquivos. Estruturas de Dados II Vanessa Braganholo

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

10) REGISTROS : Exemplos: var N,I: integer; A,B,C: real; CHAVE: boolean; CARAC: char; V: array[1..20] of real; M: array[1..10,1..

Persistência de Dados

Programação científica C++

Algoritmos e Programação Estruturada

Arquivos de Texto UFOP 1/41

Prof. Jhonatan Fernando

INF 1005 Programação I

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

Interface Hardware/Software. Centro de Informática - UFPE Paulo Maciel prmm@cin.ufpe.br

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

1 Funções básicas de implementação de arquivos

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Sumário. Parte I Filosofia e Modelagem Orientada a Objetos... 23

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Aula 29: Arquivos binários

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

ESTRUTURA DE UM PROGRAMA EM C++ Estrutura de um Programa em C++

7. Estrutura de Decisão

ESTRUTURAS DE DADOS E ALGORITMOS. INTRODUÇÃO ao C++ (Revisões)

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

Conceitos básicos da linguagem C

PROG. DE COMPUTADORES II SI Arquivos

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível

MC-102 Aula 17 Strings e Matrizes

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

CHAPTER ONE. Elementos de organização de arquivos. Histórico

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Arquivos binários em Python

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

MC-102 Algoritmos e Programação de Computadores

8. Tratamento de Arquivos

Programando em C++ Histórico da Linguagem C

INF 1007 Programação II

Arquivos em C. Material da Prof. Ana Eliza

Transcrição:

Módulo 2 Acesso a Arquivos Métodos e Algoritmos Computacionais C++ (Rone Ilídio)

Manipulação de Objetos iostream Bytes armazenados na memória Tipos: Arquivos com caracteres: textos Arquivos binários: programas, foto, música Biblioteca fstream.h leitura e gravação de arquivos.

Tipos de objetos fstream ofstream: abre arquivos para escrita ifstream: abre arquivos para leitura fstream: abre arquivos para leitura, escrita ou ambos

Gravando em Arquivo Texto

Gravando em Arquivo Texto #include <fstream.h> #include <conio.h> #include <iostream> using namespace std; int main(){ ofstream fout("teste.txt"); fout<<"universidade Federal de São João del-rei"; fout<<"\ncampus Alto Paraopeba"; fout<<"\nouro Branco"; fout<<"\nminas Gerais"; cout << "fim"; getch();

Gravando em Arquivo Texto Cria-se um objeto ofstream chamado fout A função open abre o arquivo que será escrito O operador << é sobrecarregado, na classe ostream (objetos de destino de dados recebem o fluxo de caracteres) A função close fecha o arquivo

Gravando em Arquivo Texto #include <fstream.h> int main(){ ofstream fout("teste.txt"); fout<<"universidade Federal de São João del-rei"; fout<<"\ncampus Alto Paraopeba"; fout<<"\nouro Branco"; fout<<"\nminas Gerais"; fout.close();

Gravando em Arquivo Texto Cria-se um objeto ofstream chamado fout O nome do arquivo destino é passado no construtor O arquivo é associado ao objeto ofstream O operador << é sobrecarregado, na classe ostream (objetos de destino de dados recebem o fluxo de caracteres) Quando o programa termina, o arquivo associado é automaticamente fechado (não precisa fechá-lo)

#include <fstream.h> #include <iostream.h> int main(){ ifstream file; char output[100]; int x; file.open("para_ler.txt"); //Abre o arquivo file>>output; //Lê uma palavra cout<<output<<"\n"; //Exibe na tela o resultado da leitura file>>x; //Lê o inteiro cout<<x; //Exibe novamente file.close(); //Fecha getchar(); //Obs: o arquivo deve ter uma string e um inteiro

Lendo do Teclado e Gravando um #include <fstream.h> #include <iostream> #include <conio.h> using namespace std; int main(){ ofstream fout("teste1.txt"); char ch; Caractere por Vez while(1){ ch = getche(); //lê do teclado if (ch == 27) break;//27 = ESC fout.put(ch); //ESC para terminar

Lendo Arquivo Texto

Lendo Arquivo Texto Forma de leitura Linha por linha Palavra por palavra Caractere por Caractere

Lendo Arquivo Texto Linha por Linha #include <fstream.h> #include <iostream> #include <conio.h> using namespace std; int main(){ const int MAX = 80; char buff[max]; ifstream fin("teste.txt"); while(fin.getline(buff, MAX)){ cout << buff << '\n'; getch();

Lendo Arquivo Texto Caractere por Caractere #include <fstream.h> #include <iostream> #include <conio.h> using namespace std; int main(){ char b; ifstream fin("teste.txt"); while(fin.get(b)){ cout << b<< '\n'; getch();

Lendo Arquivo Texto Palavra por Palavra #include <fstream.h> #include <iostream> #include <conio.h> using namespace std; int main(){ const int MAX = 80; char buff[max]; ifstream fin("teste.txt"); while(fin>> buff){ cout << buff << '\n'; getch();

Lendo Arquivo Texto Palavra por Palavra Utiliza-se o operador >> Pode-se ler qualquer tipo primitivo de dados Atenção com o tipo da variável Exemplo: Sabe-se que o arquivo texto contém a sequência de uma string e um inteiro, como segue: rone 18 maria 20 joao 40 ze 10

Lendo Arquivo Texto Palavra por Palavra #include <fstream.h> #include <iostream> #include <conio.h> using namespace std; int main(){ ifstream fin("stringinteiro.txt"); char nome[50]; int idade; while(fin>>nome){ fin>>idade; cout << "\n" << nome << " " << idade; getch();

Problema da função eof de ifstream A função eof() repete a última leitura feita. Exemplo de texto: int main(){ char dado; ifstream fin("teste.txt"); while(!fin.eof()){ fin.get(dado); cout<<dado<<endl; getche(); Arquivo texto contendo somente: 1 2 3 Resultado: 1 2 3 3

Função Open Associa um stream a um arquivo (no exemplos anteriores, foi chamada dentro do construtor) Assim como o construtor, pode receber 2 parâmetros: nome do arquivo e modo de abertura (a seguir) ios::in leitura ios::out gravação ios::ate abre e posiciona no final (lê e grava) ios::app grava a partir do fim ios::binary abre binário (default é texto)

Grava no Final do Arquivo #include <iostream.h> #include <conio.h> #include <fstream.h> int main(){ ofstream entrada; entrada.open("texto.txt",ios::app); entrada << "\nnova linha"; entrada << "\nmais uma linha"; entrada.close(); cout << "Fim!"; getche();

Modo Texto e Modo Binário Durante a leitura de um arquivo, a quebra de linha é contabilizada como caracter Em arquivos lidos como binários, cada quebra conta 2 caracteres (carriage-return e linefeed (CR/LF) Em arquivos lidos como caracteres, cada quebra conta 1 caractere ( \n )

#include <conio.h> #include <iostream.h> #include<fstream.h> int main(){ ifstream fin; char ch; int cont = 0; fin.open("nome.txt ); while (fin.get(ch)) { cout << ch ; cont ++; #include <conio.h> #include <iostream.h> #include<fstream.h> int main(){ ifstream fin; char ch; int cont = 0; fin.open("nome.txt",ios::binary); while (fin.get(ch)) { cout << ch ; cont ++; cout << "\ncont = "<<cont; getch(); cout << "\ncont = "<<cont; getch();

Modo Texto e Modo Binário Considere o arquivo teste.txt, da seguinte forma: ABC DEF com quebra de linha sem quebra de linha Execução do programa c:\programa1 teste.txt count = 7 c:\programa2 teste.txt count = 8

Modo Texto e Modo Binário Na execução do 1º programa, a leitura é default, por caractere quebra de linha é um caractere Na execução do 2º programa, a leitura é binário quebra de linha são dois caracteres caractere

Função seekg de ifstream Todo arquivo tem 2 ponteiros: posição corrente de leitura posição corrente de gravação A função seekg posiciona o cursor para leitura Sintaxe: seekg(long deslocamento, posição) A posição pode ser: ios::beg início do arquivo ios::cur posição corrente ios::end final do arquivo

Função seekg de ifstream #include <fstream.h> #include <conio.h> #include <iostream.h> int main(){ char buff[100]; ifstream fin; fin.open("teste.txt"); // fin.seekg(-5,ios::end); //Lê as 5 letras finais fin.seekg(2,ios::beg); //Não lê as duas primeiras letras while(fin.getline(buff,100)){ cout << buff << "\n"; getch();

Função tellg() e tellp() tellg(): retorna a posição do cursor de leitura tellp(): retorna a posição do cursor de escrita Obs: O retorno é em número de caracteres

#include <fstream.h> #include <iostream.h> #include <conio.h> #include <string.h> int main(){ char buff[100]; ifstream fin; fin.open("teste1.txt"); while(fin >> buff){ if(strcmp(buff, Meu")==0){ cout<<"\nposicao:"<<fin.tellg(); getch(); Arquivo texto: Meu nome é rone trabalho na ufsj Resultado = Posicao: 5