Buscar

Aula 5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Laboratório de Programação de 
Computadores II
Pontifícia Universidade Católica de Minas Gerais
Computadores II
Aula 5
Prof. Lucas Schmidt
Linguagem C/C++
Documentos auxiliares:
Manual C-C++
Curso Linguagem C-C++ UFMGCurso Linguagem C-C++ UFMG
Disponível no site para download:
https://sites.google.com/site/proflucasscf
Linguagem C/C++
• Manipulação de arquivos
– Para usar um arquivo em C é necessário 
abrí-lo. Para tanto, a linguagem C possui o abrí-lo. Para tanto, a linguagem C possui o 
comando fopen. 
arq = fopen("ArqTeste.txt", "rt");
Linguagem C/C++
• Manipulação de arquivos
– O primeiro parâmetro é o nome do arquivo, o 
segundo a forma de abertura:segundo a forma de abertura:
• "wt": abertura para gravação, arquivo texto
• "rt": abertura para leitura, arquivo texto
– A função fopen retorna um "apontador" para 
o arquivo caso consiga abrí-lo. caso contrário, 
retorna a constate NULL.
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
FILE *arq;
int result;
char Str[50];
arq = fopen("ArqTeste.txt", "rt");
if (arq == NULL)
{
printf("Problemas na CRIACAO do arquivo\n");
return 0;
}
}
Linguagem C/C++
• Manipulação de arquivos - Gravação
– Para gravação de arquivos texto usa-se as 
funções fputs e fprintf.funções fputs e fprintf.
result = fputs(Str, arq);
– Se a função NÃO for executada com sucesso, 
fputs retorna a constante EOF.
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
char Str[100];
FILE *arq;
int result;
arq = fopen("ArqTeste.txt", "wt"); // Cria um arquivo texto
para gravação
if (arq == NULL) // Se não conseguiu criar
{
printf("Problemas na CRIACAO do arquivo\n");
return 0;
}
Linguagem C/C++
• Exemplo (reproduza no compilador)
strcpy(Str,"Linha de teste");
result = fputs(Str, arq);
if (result == EOF)
printf("Erro na Gravacao\n");printf("Erro na Gravacao\n");
else
printf("Arquivo gravado!\n");
fclose(arq);
}
Linguagem C/C++
• Manipulação de arquivos - Gravação
– A função fprintf() funciona como a função 
printf(). A diferença é que a saída de fprintf() printf(). A diferença é que a saída de fprintf() 
é um arquivo e não a tela do computador.
result = fprintf(arq,"Linha %d\n",i); 
Se for executada com sucesso, devolve o 
número de caracteres gravados. Se NÃO, 
retorna a constante EOF.
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
FILE *arq;
int i;
int result;
arq = fopen("ArqTeste.txt", "wt"); // Cria um arquivo texto
para gravação
if (arq == NULL) // Se nào conseguiu criar
{
printf("Problemas na CRIACAO do arquivo\n");
return 0;
}
Linguagem C/C++
• Exemplo (reproduza no compilador)
for (i = 0; i<10;i++)
{
// A funcao 'fprintf' devolve o número de bytes gravados
// ou EOF se houve erro na gravação
result = fprintf(arq,"Linha %d\n",i);result = fprintf(arq,"Linha %d\n",i);
if (result == EOF)
printf("Erro na Gravacao\n");
else
printf("Arquivo gravado!\n");
}
fclose(arq);
}
Linguagem C/C++
• Manipulação de arquivos - Leitura
– Para leitura de arquivos texto pode-se usar a 
função fgets ou fscanf.função fgets ou fscanf.
– Leitura com FGETS
• A função FGETS lê uma linha inteira de uma vez.
• Exemplo: result = fgets(Linha, 100, arq);
• o 'fgets' lê até 99 caracteres ou até o '\n‘
• Se a função for executada com sucesso, fgets
retorna o endereço da string lida, caso contrário 
retorna NULL.
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
FILE *arq;
char Linha[100];
char *result;
int i;
// Abre um arquivo TEXTO para LEITURA
arq = fopen("ArqTeste.txt", "rt");
if (arq == NULL) // Se houve erro na abertura
{
printf("Problemas na abertura do arquivo\n");
return 0;
}
Linguagem C/C++
• Exemplo (reproduza no compilador)
i = 1;
while (!feof(arq))
{
// Lê uma linha (inclusive com o '\n')// Lê uma linha (inclusive com o '\n')
result = fgets(Linha, 100, arq); // o 'fgets' lê até 99 
caracteres ou até o '\n'
if (result) // Se foi possível ler
printf("Linha %d : %s",i,Linha);
i++;
}
fclose(arq);
}
Linguagem C/C++
• Manipulação de arquivos - Leitura
– A função FSCANF funciona como a função 
SCANF, porém, ao invés de ler os dados de SCANF, porém, ao invés de ler os dados de 
teclado, estes dados são lidos de arquivo.
fscanf(arq,"%c",&result);
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
FILE *arq;
char result;
int i;
// Abre um arquivo TEXTO para LEITURA
arq = fopen("ArqTeste.txt", "rt");
if (arq == NULL) // Se houve erro na abertura
{
printf("Problemas na abertura do arquivo\n");
return 0;
}
Linguagem C/C++
• Exemplo (reproduza no compilador)
while (!feof(arq))
{
fscanf(arq,"%c",&result);
printf("%c",result);
}}
fclose(arq);
}
Linguagem C/C++
• Manipulação de arquivos – Pesquisa
– Podemos utilizar a função FSCANF para 
fazer pesquisa seqüencial em arquivos.fazer pesquisa seqüencial em arquivos.
– Controlando a estrutura de repetição, com 
uma estrutura de seleção.
Linguagem C/C++
• Exemplo (reproduza no compilador)
#include <iostream>
#include <stdio.h>
int main()
{{
FILE *arq;
char result, carac;
int i = 0;
// Abre um arquivo TEXTO para LEITURA
arq = fopen("ArqTeste.txt", "rt");
if (arq == NULL) // Se houve erro na abertura
{
printf("Problemas na abertura do arquivo\n");
return 0;
}
printf("Informe o caracter a ser pesquisado: ");
scanf (" %c", &carac);
Linguagem C/C++
• Exemplo (reproduza no compilador)
while (!feof(arq))
{
fscanf(arq,"%c",&result);
printf("%c",result);
if (result == carac)if (result == carac)
{
printf("\nCaracter encontrado!\n");
i = 1;
break;
}
}
if (i == 0)
printf("\nCaracter nao encontrado!\n");
fclose(arq);
}

Continue navegando