SlideShare uma empresa Scribd logo
1 de 32
Programação Estruturada II
Aula 04 – Arquivos
Prof. Thomás da Costa
thomasdacosta@gmail.com
Anhanguera – 2015.1
PEA - Programação Estruturada II
Vamos ver o PEA:
Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as aulas
lecionadas e vamos ver as próximas lições até o fim do curso.
PEA - Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
Vamos ver o que aprendemos
até agora !!!
Status Matéria
Apresentação da disciplina. Revisão de aspectos básicos da linguagem C.
Depuração e documentação interna de programas.
Conceituação de modularização. Utilização de Funções. Passagem de
parâmetros por valor.
Utilização de Funções. Passagem de parâmetros por referência. Exemplos e
exercícios.
Definição de tipos. Tipos definidos pelo programador. Utilização do tipo struct.
Conceituação, principais utilizações, exemplos e exercícios.
Abordagem dos tipos union e enum. Conceituação, principais utilizações,
exemplos e exercícios.
Revisão
Atividades de Avaliação.
PEA - Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
PEA - Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
Vamos ver as próximas aulas
até o fim do curso !!!
Status Matéria
Introdução a arquivos de dados. Conceito de campos e registros. Criação de registros e criação de
arquivos.
Operações com arquivos: inclusão de registro, consulta a registros. Fechamento de arquivos.
Exemplos e exercícios.
Operações com arquivos: exclusão de registros, alterações de registros. Exercícios em sala.
Exercícios com arquivos.
Conceito de recursividade. Aplicações. Exemplos de programas recursivos.
Recursão: exercícios.
Introdução a ponteiros e suas aplicações. Exemplos e exercícios em sala.
Tipos de ponteiros. Utilização de operadores aritméticos e de comparação em ponteiros. Exercícios.
Introdução a Ponteiros avançados e operadores bit-a-bit
Ponteiros avançados e operadores bit-a-bit. Exemplos e exercícios.
Revisão
Prova Escrita Oficial
Prova Substitutiva
PEA - Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
Avaliação – B2
Avaliação – B2
- Período das avaliações B2: 15 até 19 de Junho
- Data da Avaliação B2: 15 de junho (SIS) e 16 de junho (TADS)
- Obrigatoriamente, avaliação da B2 é PROVA
- PROVA SUBSTITUTIVA SUBSTITUI A NOTA DA B2, NÃO SUBSTITUI A MENOR NOTA
DAS PROVAS OU A B1
- Matéria da Prova é todo o conteúdo do semestre
- Será disponibilizado uma lista com 20 exercícios para estudar
Prof. Thomás da Costa Programação Estruturada II
ATPS – B2
ATPS – B2
- Data de Entrega B2: 08 de junho (SIS) e 09 de junho (TADS)
- O prazo para entrega é até as 20h50 do dia 08 (SIS) e 09 (TADS)
- Fora desse horário não será aceito
- Grupo no máximo de 5 pessoas
- Efetuar a entrega da ETAPA 3 e ETAPA 4
- Fazer os exercícios em C++. Se for feito em C será considerado ERRADO
- Façam a REVISÃO do trabalho antes de imprimir e entregar
- Seguir a Normalização de Trabalhos Acadêmicos :
http://www.anhanguera.com/bibliotecas/biblioteca-virtual/pagina/normalizacao
Prof. Thomás da Costa Programação Estruturada II
Arquivos
ARQUIVOS
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Bem conhecido no nosso dia-a-dia:
Todos os dias no nosso trabalho ou em casa utilizamos arquivos para armazenar
informações tais como: imagem, texto, trabalho de faculdade, relatórios, planilhas
de gastos e etc. Até esse ponto do curso, todas as informações eram armazenadas
na memória, ou seja, quando um programa terminava não existia nenhum
processo de armazenamento de dados.
Vamos aprender a armazenar informações em arquivos textos ou de dados !!!
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Tipos de Arquivos:
Texto: armazena somente texto e caracteres. Normalmente possuem extensão txt
Binário: arquivos que podem armazenar textos, imagens, planilhas e outros tipos
de informações. Algumas extensões conhecidas: pdf, doc, xls, gif
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Criando arquivos textos em C++:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
#include <fstream>
...
ofstream ofs;
ofs.open("ola_mundo.txt", ios::out);
Include da biblioteca de arquivos
Variável do arquivo
Nome do arquivo
Formato de abertura do arquivo
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void gravar_arquivo();
int main()
{
gravar_arquivo();
}
void gravar_arquivo()
{
string valor;
valor = "Ola Mundo";
ofstream ofs;
ofs.open("ola_mundo.txt", ios::out);
ofs << valor;
ofs.close();
}
Exemplo 1
Grava um texto no arquivo
O tipo string é semelhante a um vetor de char,
ou seja, armazena um conjunto de caracteres
Arquivos
Lendo arquivos textos em C++:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
#include <fstream>
...
ifstream ifs;
ifs.open("ola_mundo.txt", ios::in);
Include da biblioteca de arquivos
Variável do arquivo
Nome do arquivo
Formato de abertura do arquivo
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void ler_arquivo();
int main()
{
ler_arquivo();
}
void ler_arquivo()
{
string valor;
ifstream ifs;
ifs.open("ola_mundo.txt", ios::in);
if (!ifs.is_open())
{
cout << "Não foi possivel abrir o arquivo" << endl;
return;
}
getline(ifs, valor);
cout << "Conteúdo do Arquivo:" << valor << endl;
ifs.close();
}
Exemplo 2
Efetua a leitura de uma
linha no arquivo
Arquivos
Lembrete:
Sempre que um arquivo for aberto para leitura ou escrita, o mesmo deve ser
fechado, para que possa ser utilizado por outros programas e não ocupar recursos
do sistema operacional.
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Utilizar o comando close() dos objetos
ofstream e ifstream !!!
Arquivos
Novos tipos e comandos:
string: novo tipo de variável, semelhante a um vetor de char
getline: efetua a leitura de uma linha de um arquivo
is_open: verifica se o arquivo foi aberto ou criado corretamente no disco. Exemplo
de problemas: falta de espaço em disco, diretório não existente e etc
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void gravar_arquivo();
int main()
{
gravar_arquivo();
}
void gravar_arquivo()
{
int valor_1;
double valor_2;
float valor_3;
char valor_4;
cin >> valor_1;
cin >> valor_2;
cin >> valor_3;
cin >> valor_4;
ofstream ofs;
ofs.open("numeros.txt", ios::out);
ofs << valor_1 << endl;
ofs << valor_2 << endl;
ofs << valor_3 << endl;
ofs << valor_4 << endl;
ofs.close();
}
Exemplo 3
Lendo valores a partir do teclado
Gravando os valores sequencialmente
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void ler_arquivo();
int main()
{
ler_arquivo();
}
Prof. Thomás da Costa Programação Estruturada II
void ler_arquivo()
{
int valor_1;
double valor_2;
float valor_3;
char valor_4;
ifstream ifs;
ifs.open("numeros.txt", ios::in);
if (!ifs.is_open())
{
cout << "Não foi possivel abrir o arquivo" << endl;
return;
}
ifs >> valor_1;
ifs >> valor_2;
ifs >> valor_3;
ifs >> valor_4;
cout << "Valores do arquivo:" << valor_1 << ","
<< valor_2 << "," << valor_3 << "," << valor_4;
ifs.close();
}
Exemplo 4
Lendo os valores sequencialmente
Arquivos
Formas de abertura de um arquivo:
Quando trabalhamos com arquivos, existem várias formas de leitura e escrita.
Podemos abrir o arquivo somente para leitura, escrita, escrita/leitura e etc. Para
escolher a forma de trabalhar com o arquivo, passamos parâmetros na função
open do ofstream ou do ifstream conforme a tabela abaixo:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Parâmetro Descrição
ios::in Efetua operação de leitura de arquivo (Sempre usar no ifstream)
ios::out Efetua operação de escrita de arquivo (Sempre usar no ofstream)
ios::binary Cria um arquivo binário
ios::app Insere valores no fim do arquivo
ios::trunc Apaga o conteúdo do arquivo e substitui por um novo
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void gravar_fim_arquivo();
int main()
{
gravar_fim_arquivo();
}
void gravar_fim_arquivo()
{
string valor;
valor = "Nova linha no arquivo";
ofstream ofs;
ofs.open("arquivo_linhas.txt", ios::out | ios::app);
ofs << valor << endl;
ofs.close();
}
Exemplo 5
Abre o arquivo para escrita e
insere valores no final do arquivo
Arquivos
Lendo um arquivo com várias linhas:
Normalmente um arquivo texto possui várias linhas de caracteres. Quando
desenvolvemos um programa para ler um arquivo, não temos ideia do seu
tamanho. Para efetuarmos a leitura do arquivo até o seu fim, utilizamos o
comando getline dentro de uma instrução while.
Arquivos
Prof. Thomás da Costa Programação Estruturada II
O comando getline busca sempre o
fim de linha
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void gravar_arquivo();
int main()
{
gravar_arquivo();
}
void gravar_arquivo()
{
string valor;
ofstream ofs;
ofs.open("arquivo_linhas.txt", ios::out);
valor = "O que são funções:";
ofs << valor << endl;
valor = "São rotinas que tem como objetivo, "
"executar trechos de códigos de forma modular, "
"melhorando a organização do programa e evitando repetição de
código.";
ofs << valor << endl;
valor = "As funções são reutilizáveis dentro de um programa.";
ofs << valor << endl;
ofs.close();
}
Exemplo 6
Criando um arquivo com várias
linhas. No nosso caso, 3 linhas.
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void ler_arquivo();
int main()
{
ler_arquivo();
}
void ler_arquivo()
{
string linha;
ifstream ifs;
ifs.open("arquivo_linhas.txt", ios::in);
if (!ifs.is_open())
{
cout << "Não foi possivel abrir o arquivo" << endl;
return;
}
while (getline(ifs, linha))
{
cout << linha << endl;
}
ifs.close();
}
Exemplo 7
Utilizando getline para efetuar a leitura de
uma linha. Enquanto existir linha no
arquivo, a leitura será efetuada
Arquivos
Gravando estruturas em arquivo:
Até agora vimos como gravar informações no formato texto.
Neste ponto da matéria, iremos aprender a gravar um estrutura dentro de um
arquivo. A estrutura é gravado em um arquivo no formato binário
Para isso vamos aprender uma nova forma de trabalhar com arquivo. Essa nova
forma, podemos gravar e ler informações utilizando apenas um tipo de variável,
sem precisar usar o ofstream e o ifstream
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Vamos ver a nova forma de gravação em arquivos !!!
#include <fstream>
...
fstream fst;
fst.open("registros.dat",
ios::in | ios::out | ios::app | ios::binary);
Arquivos
Escrevendo/Lendo arquivos textos e binários em C++:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Include da biblioteca de arquivos
Variável do arquivo
Nome do arquivo
Formato de abertura do arquivo
fst.write((char *)&alu, sizeof(alu));
Arquivos
Gravando uma estrutura em um arquivo:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Comando para gravação
“Cast” da estrutura para char
Tamanho da estrutura que será gravada
Prof. Thomás da Costa Programação Estruturada II
Exemplo 8
#include <iostream>
#include <fstream>
#include <strings.h>
#include <limits>
using namespace std;
struct alunos
{
long id;
char nome[255];
char ra[30];
int idade;
};
void gravar_arquivo_registros();
int main()
{
gravar_arquivo_registros();
}
void gravar_arquivo_registros()
{
alunos alu;
cout << "Digite o nome do aluno:";
gets(alu.nome);
cout << "Digite o RA do aluno:";
gets(alu.ra);
cout << "Digite a idade do aluno:";
cin >> alu.idade;
fstream fst;
fst.open("registros.dat",
ios::in | ios::out | ios::app | ios::binary);
if (!fst.is_open())
{
cout << "Não foi possivel abrir o arquivo"
<< endl;
return;
}
fst.write((char *)&alu, sizeof(alu));
fst.close();
}
Gravando uma estrutura no
arquivo
fst.read((char *)&alu,sizeof(alu))
Arquivos
Lendo uma estrutura em um arquivo:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Comando para leitura
“Cast” da estrutura para char
Tamanho da estrutura que será lida
Prof. Thomás da Costa Programação Estruturada II
Exemplo 9
#include <iostream>
#include <fstream>
#include <strings.h>
#include <limits>
using namespace std;
struct alunos
{
long id;
char nome[255];
char ra[30];
int idade;
};
void ler_arquivo_registros();
int main()
{
ler_arquivo_registros();
}
void ler_arquivo_registros()
{
alunos alu;
fstream fst;
fst.open("registros.dat",
ios::in | ios::out | ios::app | ios::binary);
if (!fst.is_open())
{
cout << "Não foi possivel abrir o arquivo";
return;
}
while (fst.read((char *)&alu,sizeof(alu)))
{
cout << "************************" << endl;
cout << "Nome:" << alu.nome << endl;
cout << "RA:" << alu.ra << endl;
cout << "Idade:" << alu.idade << endl;
}
fst.close();
}
Lendo uma estrutura do
arquivo
Arquivos
Resumo:
- Existem dois formatos de arquivos: texto e binário
- Utilizamos o tipo ofstream para escrita em um arquivo
- Utilizamos o tipo ifstream para leitura em um arquivo
- Podemos gravar uma estrutura em um arquivo
- O tipo fstream é utilizado para escrita e leitura de arquivos
- Devemos sempre fechar o arquivo com o close do tipo específico do arquivo
- O tipo string é semelhante a um vetor de char
- O comando getline efetua a leitura de uma linha em um arquivo texto
- O is_open tem como finalidade, indicar se o arquivo foi aberto ou criado
corretamente
- Para efetuar a leitura de um arquivo com várias linhas utilizamos o getline
dentro de laço até o final do arquivo
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Próxima Aula:
- LABORATÓRIO !!!
- Vamos praticar os conhecimentos dessa aula
- O exercícios vão manter o mesmo padrão: básico, normal e avançado
- Iremos aprender matéria nova sobre arquivos no laboratório
Arquivos
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

Mini Curso Introdutório ao Latex
Mini Curso Introdutório ao LatexMini Curso Introdutório ao Latex
Mini Curso Introdutório ao Latex
 
[SIFSC] LaTeX para teses e dissertações
[SIFSC] LaTeX para teses e dissertações[SIFSC] LaTeX para teses e dissertações
[SIFSC] LaTeX para teses e dissertações
 
Files e File System PHP (Português)
Files e File System PHP (Português)Files e File System PHP (Português)
Files e File System PHP (Português)
 
Minicurso LaTeX
Minicurso LaTeXMinicurso LaTeX
Minicurso LaTeX
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Minicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeXMinicurso - Introdução ao LaTeX
Minicurso - Introdução ao LaTeX
 
Introducao ao LaTeX
Introducao ao LaTeXIntroducao ao LaTeX
Introducao ao LaTeX
 
Introdução ao Latex
Introdução ao LatexIntrodução ao Latex
Introdução ao Latex
 
Formatação de TCC com abnTeX
Formatação de TCC com abnTeXFormatação de TCC com abnTeX
Formatação de TCC com abnTeX
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
LaTeX Básico I
LaTeX Básico ILaTeX Básico I
LaTeX Básico I
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Python Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem PythonPython Módulo Básico - Introdução a linguagem Python
Python Módulo Básico - Introdução a linguagem Python
 
Cucumber: um breve review
Cucumber: um breve reviewCucumber: um breve review
Cucumber: um breve review
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
 
Curso de Msdos vol2
Curso de Msdos vol2Curso de Msdos vol2
Curso de Msdos vol2
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
1livro latex 1_1_pdf
1livro latex 1_1_pdf1livro latex 1_1_pdf
1livro latex 1_1_pdf
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 

Destaque

LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2thomasdacosta
 
Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02thomasdacosta
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03thomasdacosta
 
Revisão - Funções
Revisão - FunçõesRevisão - Funções
Revisão - Funçõesthomasdacosta
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01thomasdacosta
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2thomasdacosta
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01thomasdacosta
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2thomasdacosta
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05thomasdacosta
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 

Destaque (13)

LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2LAB 03 - Programação Estruturada 2
LAB 03 - Programação Estruturada 2
 
Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02Exercícios da Aula de LAB 02
Exercícios da Aula de LAB 02
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03Exercícios da Aula de LAB 03
Exercícios da Aula de LAB 03
 
Revisão - Funções
Revisão - FunçõesRevisão - Funções
Revisão - Funções
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01Exercícios da Aula de LAB 01
Exercícios da Aula de LAB 01
 
LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2LAB 02 - Programação Estruturada 2
LAB 02 - Programação Estruturada 2
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2LAB 01 - Programação Estruturada 2
LAB 01 - Programação Estruturada 2
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 

Semelhante a Arquivos Programação Estruturada II

Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoÁlvaro Justen
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem CVê Rodrigues
 
Shell script ii direcionadores-convertido
Shell script ii  direcionadores-convertidoShell script ii  direcionadores-convertido
Shell script ii direcionadores-convertidoCarlos Melo
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Laboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoLaboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoAlex Camargo
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Shell script ii direcionadores
Shell script ii  direcionadoresShell script ii  direcionadores
Shell script ii direcionadoresCarlos Melo
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandosIvan Ribeiro
 
Ficheiros em C
Ficheiros em CFicheiros em C
Ficheiros em CBaguiasri
 

Semelhante a Arquivos Programação Estruturada II (20)

Workshop Python.2
Workshop Python.2Workshop Python.2
Workshop Python.2
 
Estrutura de dados ii
Estrutura de dados iiEstrutura de dados ii
Estrutura de dados ii
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Ciência de Dados na Linha de Comando
Ciência de Dados na Linha de ComandoCiência de Dados na Linha de Comando
Ciência de Dados na Linha de Comando
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Ativ complementar etapa 02
Ativ complementar etapa 02Ativ complementar etapa 02
Ativ complementar etapa 02
 
15. introducao ao c++
15. introducao ao c++15. introducao ao c++
15. introducao ao c++
 
Shell script ii direcionadores-convertido
Shell script ii  direcionadores-convertidoShell script ii  direcionadores-convertido
Shell script ii direcionadores-convertido
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Aula 11 semana
Aula 11 semanaAula 11 semana
Aula 11 semana
 
Laboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em discoLaboratório de Programação I: Arquivos (binários) em disco
Laboratório de Programação I: Arquivos (binários) em disco
 
Shell Scipt - Comandos
Shell Scipt - ComandosShell Scipt - Comandos
Shell Scipt - Comandos
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Ficheiros texto
Ficheiros textoFicheiros texto
Ficheiros texto
 
Shell script ii direcionadores
Shell script ii  direcionadoresShell script ii  direcionadores
Shell script ii direcionadores
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Ficheiros em C
Ficheiros em CFicheiros em C
Ficheiros em C
 

Mais de thomasdacosta

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01thomasdacosta
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01thomasdacosta
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06thomasdacosta
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05thomasdacosta
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07thomasdacosta
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06thomasdacosta
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04thomasdacosta
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05thomasdacosta
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03thomasdacosta
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05thomasdacosta
 

Mais de thomasdacosta (20)

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 

Arquivos Programação Estruturada II

  • 1. Programação Estruturada II Aula 04 – Arquivos Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  • 2. PEA - Programação Estruturada II Vamos ver o PEA: Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as aulas lecionadas e vamos ver as próximas lições até o fim do curso. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II Vamos ver o que aprendemos até agora !!!
  • 3. Status Matéria Apresentação da disciplina. Revisão de aspectos básicos da linguagem C. Depuração e documentação interna de programas. Conceituação de modularização. Utilização de Funções. Passagem de parâmetros por valor. Utilização de Funções. Passagem de parâmetros por referência. Exemplos e exercícios. Definição de tipos. Tipos definidos pelo programador. Utilização do tipo struct. Conceituação, principais utilizações, exemplos e exercícios. Abordagem dos tipos union e enum. Conceituação, principais utilizações, exemplos e exercícios. Revisão Atividades de Avaliação. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II
  • 4. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II Vamos ver as próximas aulas até o fim do curso !!!
  • 5. Status Matéria Introdução a arquivos de dados. Conceito de campos e registros. Criação de registros e criação de arquivos. Operações com arquivos: inclusão de registro, consulta a registros. Fechamento de arquivos. Exemplos e exercícios. Operações com arquivos: exclusão de registros, alterações de registros. Exercícios em sala. Exercícios com arquivos. Conceito de recursividade. Aplicações. Exemplos de programas recursivos. Recursão: exercícios. Introdução a ponteiros e suas aplicações. Exemplos e exercícios em sala. Tipos de ponteiros. Utilização de operadores aritméticos e de comparação em ponteiros. Exercícios. Introdução a Ponteiros avançados e operadores bit-a-bit Ponteiros avançados e operadores bit-a-bit. Exemplos e exercícios. Revisão Prova Escrita Oficial Prova Substitutiva PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II
  • 6. Avaliação – B2 Avaliação – B2 - Período das avaliações B2: 15 até 19 de Junho - Data da Avaliação B2: 15 de junho (SIS) e 16 de junho (TADS) - Obrigatoriamente, avaliação da B2 é PROVA - PROVA SUBSTITUTIVA SUBSTITUI A NOTA DA B2, NÃO SUBSTITUI A MENOR NOTA DAS PROVAS OU A B1 - Matéria da Prova é todo o conteúdo do semestre - Será disponibilizado uma lista com 20 exercícios para estudar Prof. Thomás da Costa Programação Estruturada II
  • 7. ATPS – B2 ATPS – B2 - Data de Entrega B2: 08 de junho (SIS) e 09 de junho (TADS) - O prazo para entrega é até as 20h50 do dia 08 (SIS) e 09 (TADS) - Fora desse horário não será aceito - Grupo no máximo de 5 pessoas - Efetuar a entrega da ETAPA 3 e ETAPA 4 - Fazer os exercícios em C++. Se for feito em C será considerado ERRADO - Façam a REVISÃO do trabalho antes de imprimir e entregar - Seguir a Normalização de Trabalhos Acadêmicos : http://www.anhanguera.com/bibliotecas/biblioteca-virtual/pagina/normalizacao Prof. Thomás da Costa Programação Estruturada II
  • 8. Arquivos ARQUIVOS Prof. Thomás da Costa Programação Estruturada II
  • 9. Arquivos Bem conhecido no nosso dia-a-dia: Todos os dias no nosso trabalho ou em casa utilizamos arquivos para armazenar informações tais como: imagem, texto, trabalho de faculdade, relatórios, planilhas de gastos e etc. Até esse ponto do curso, todas as informações eram armazenadas na memória, ou seja, quando um programa terminava não existia nenhum processo de armazenamento de dados. Vamos aprender a armazenar informações em arquivos textos ou de dados !!! Arquivos Prof. Thomás da Costa Programação Estruturada II
  • 10. Arquivos Tipos de Arquivos: Texto: armazena somente texto e caracteres. Normalmente possuem extensão txt Binário: arquivos que podem armazenar textos, imagens, planilhas e outros tipos de informações. Algumas extensões conhecidas: pdf, doc, xls, gif Arquivos Prof. Thomás da Costa Programação Estruturada II
  • 11. Arquivos Criando arquivos textos em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II #include <fstream> ... ofstream ofs; ofs.open("ola_mundo.txt", ios::out); Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  • 12. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { string valor; valor = "Ola Mundo"; ofstream ofs; ofs.open("ola_mundo.txt", ios::out); ofs << valor; ofs.close(); } Exemplo 1 Grava um texto no arquivo O tipo string é semelhante a um vetor de char, ou seja, armazena um conjunto de caracteres
  • 13. Arquivos Lendo arquivos textos em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II #include <fstream> ... ifstream ifs; ifs.open("ola_mundo.txt", ios::in); Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  • 14. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } void ler_arquivo() { string valor; ifstream ifs; ifs.open("ola_mundo.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } getline(ifs, valor); cout << "Conteúdo do Arquivo:" << valor << endl; ifs.close(); } Exemplo 2 Efetua a leitura de uma linha no arquivo
  • 15. Arquivos Lembrete: Sempre que um arquivo for aberto para leitura ou escrita, o mesmo deve ser fechado, para que possa ser utilizado por outros programas e não ocupar recursos do sistema operacional. Arquivos Prof. Thomás da Costa Programação Estruturada II Utilizar o comando close() dos objetos ofstream e ifstream !!!
  • 16. Arquivos Novos tipos e comandos: string: novo tipo de variável, semelhante a um vetor de char getline: efetua a leitura de uma linha de um arquivo is_open: verifica se o arquivo foi aberto ou criado corretamente no disco. Exemplo de problemas: falta de espaço em disco, diretório não existente e etc Arquivos Prof. Thomás da Costa Programação Estruturada II
  • 17. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { int valor_1; double valor_2; float valor_3; char valor_4; cin >> valor_1; cin >> valor_2; cin >> valor_3; cin >> valor_4; ofstream ofs; ofs.open("numeros.txt", ios::out); ofs << valor_1 << endl; ofs << valor_2 << endl; ofs << valor_3 << endl; ofs << valor_4 << endl; ofs.close(); } Exemplo 3 Lendo valores a partir do teclado Gravando os valores sequencialmente
  • 18. #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } Prof. Thomás da Costa Programação Estruturada II void ler_arquivo() { int valor_1; double valor_2; float valor_3; char valor_4; ifstream ifs; ifs.open("numeros.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } ifs >> valor_1; ifs >> valor_2; ifs >> valor_3; ifs >> valor_4; cout << "Valores do arquivo:" << valor_1 << "," << valor_2 << "," << valor_3 << "," << valor_4; ifs.close(); } Exemplo 4 Lendo os valores sequencialmente
  • 19. Arquivos Formas de abertura de um arquivo: Quando trabalhamos com arquivos, existem várias formas de leitura e escrita. Podemos abrir o arquivo somente para leitura, escrita, escrita/leitura e etc. Para escolher a forma de trabalhar com o arquivo, passamos parâmetros na função open do ofstream ou do ifstream conforme a tabela abaixo: Arquivos Prof. Thomás da Costa Programação Estruturada II Parâmetro Descrição ios::in Efetua operação de leitura de arquivo (Sempre usar no ifstream) ios::out Efetua operação de escrita de arquivo (Sempre usar no ofstream) ios::binary Cria um arquivo binário ios::app Insere valores no fim do arquivo ios::trunc Apaga o conteúdo do arquivo e substitui por um novo
  • 20. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_fim_arquivo(); int main() { gravar_fim_arquivo(); } void gravar_fim_arquivo() { string valor; valor = "Nova linha no arquivo"; ofstream ofs; ofs.open("arquivo_linhas.txt", ios::out | ios::app); ofs << valor << endl; ofs.close(); } Exemplo 5 Abre o arquivo para escrita e insere valores no final do arquivo
  • 21. Arquivos Lendo um arquivo com várias linhas: Normalmente um arquivo texto possui várias linhas de caracteres. Quando desenvolvemos um programa para ler um arquivo, não temos ideia do seu tamanho. Para efetuarmos a leitura do arquivo até o seu fim, utilizamos o comando getline dentro de uma instrução while. Arquivos Prof. Thomás da Costa Programação Estruturada II O comando getline busca sempre o fim de linha
  • 22. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { string valor; ofstream ofs; ofs.open("arquivo_linhas.txt", ios::out); valor = "O que são funções:"; ofs << valor << endl; valor = "São rotinas que tem como objetivo, " "executar trechos de códigos de forma modular, " "melhorando a organização do programa e evitando repetição de código."; ofs << valor << endl; valor = "As funções são reutilizáveis dentro de um programa."; ofs << valor << endl; ofs.close(); } Exemplo 6 Criando um arquivo com várias linhas. No nosso caso, 3 linhas.
  • 23. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } void ler_arquivo() { string linha; ifstream ifs; ifs.open("arquivo_linhas.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } while (getline(ifs, linha)) { cout << linha << endl; } ifs.close(); } Exemplo 7 Utilizando getline para efetuar a leitura de uma linha. Enquanto existir linha no arquivo, a leitura será efetuada
  • 24. Arquivos Gravando estruturas em arquivo: Até agora vimos como gravar informações no formato texto. Neste ponto da matéria, iremos aprender a gravar um estrutura dentro de um arquivo. A estrutura é gravado em um arquivo no formato binário Para isso vamos aprender uma nova forma de trabalhar com arquivo. Essa nova forma, podemos gravar e ler informações utilizando apenas um tipo de variável, sem precisar usar o ofstream e o ifstream Arquivos Prof. Thomás da Costa Programação Estruturada II Vamos ver a nova forma de gravação em arquivos !!!
  • 25. #include <fstream> ... fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); Arquivos Escrevendo/Lendo arquivos textos e binários em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  • 26. fst.write((char *)&alu, sizeof(alu)); Arquivos Gravando uma estrutura em um arquivo: Arquivos Prof. Thomás da Costa Programação Estruturada II Comando para gravação “Cast” da estrutura para char Tamanho da estrutura que será gravada
  • 27. Prof. Thomás da Costa Programação Estruturada II Exemplo 8 #include <iostream> #include <fstream> #include <strings.h> #include <limits> using namespace std; struct alunos { long id; char nome[255]; char ra[30]; int idade; }; void gravar_arquivo_registros(); int main() { gravar_arquivo_registros(); } void gravar_arquivo_registros() { alunos alu; cout << "Digite o nome do aluno:"; gets(alu.nome); cout << "Digite o RA do aluno:"; gets(alu.ra); cout << "Digite a idade do aluno:"; cin >> alu.idade; fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); if (!fst.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } fst.write((char *)&alu, sizeof(alu)); fst.close(); } Gravando uma estrutura no arquivo
  • 28. fst.read((char *)&alu,sizeof(alu)) Arquivos Lendo uma estrutura em um arquivo: Arquivos Prof. Thomás da Costa Programação Estruturada II Comando para leitura “Cast” da estrutura para char Tamanho da estrutura que será lida
  • 29. Prof. Thomás da Costa Programação Estruturada II Exemplo 9 #include <iostream> #include <fstream> #include <strings.h> #include <limits> using namespace std; struct alunos { long id; char nome[255]; char ra[30]; int idade; }; void ler_arquivo_registros(); int main() { ler_arquivo_registros(); } void ler_arquivo_registros() { alunos alu; fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); if (!fst.is_open()) { cout << "Não foi possivel abrir o arquivo"; return; } while (fst.read((char *)&alu,sizeof(alu))) { cout << "************************" << endl; cout << "Nome:" << alu.nome << endl; cout << "RA:" << alu.ra << endl; cout << "Idade:" << alu.idade << endl; } fst.close(); } Lendo uma estrutura do arquivo
  • 30. Arquivos Resumo: - Existem dois formatos de arquivos: texto e binário - Utilizamos o tipo ofstream para escrita em um arquivo - Utilizamos o tipo ifstream para leitura em um arquivo - Podemos gravar uma estrutura em um arquivo - O tipo fstream é utilizado para escrita e leitura de arquivos - Devemos sempre fechar o arquivo com o close do tipo específico do arquivo - O tipo string é semelhante a um vetor de char - O comando getline efetua a leitura de uma linha em um arquivo texto - O is_open tem como finalidade, indicar se o arquivo foi aberto ou criado corretamente - Para efetuar a leitura de um arquivo com várias linhas utilizamos o getline dentro de laço até o final do arquivo Arquivos Prof. Thomás da Costa Programação Estruturada II
  • 31. Arquivos Próxima Aula: - LABORATÓRIO !!! - Vamos praticar os conhecimentos dessa aula - O exercícios vão manter o mesmo padrão: básico, normal e avançado - Iremos aprender matéria nova sobre arquivos no laboratório Arquivos Prof. Thomás da Costa Programação Estruturada II
  • 32. Arquivos Obrigado !!! Prof. Thomás da Costa Programação Estruturada II