Linguagem C: Manipulação de Arquivos
De Aulas
Revisão de 13h26min de 9 de outubro de 2019 por Admin (discussão | contribs) (→Escrevendo um arquivo texto)
Voltar para Programação em C
Definição
Uma das formas de armazenar informações persistentes de um programa de computador é utilizando um sistema de gravação e leitura das informações em um arquivo.
Escrevendo um arquivo texto
O exemplo abaixo mostra como criar um arquivo texto com strings entradas pelo usuário.
1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4
5int main(int argc, char *argv[]) {
6 if (argc <= 1) {
7 printf("digite o nome do arquivo.\n");
8 exit(1);
9 }
10 FILE *arq = fopen(argv[1], "w");
11 if (arq == NULL) {
12 printf("Erro na criação do arquivo.\n");
13 exit(2);
14 }
15 printf("Digite seu texto. Para finalizar, digite sair em uma nova linha:\n");
16 char linha[255] = "";
17 // usar o strstr porque o fgets insere o enter à string
18 while (strstr(linha, "sair") == NULL) {
19 if(fgets(linha, sizeof(linha), stdin) != NULL) {
20 if (strstr(linha, "sair") != NULL) {
21 fputs(linha, arq);
22 }
23 }
24 }
25 fclose (arq);
26}
|
Lendo um arquivo texto
Este exemplo lê um arquivo texto e apresenta as informações na tela.
1#include <stdio.h>
2#include <stdlib.h>
3
4int main(int argc, char *argv[]) {
5 if (argc <= 1) {
6 printf("Digite o nome do arquivo.\n");
7 exit(1);
8 }
9 FILE *arq = fopen(argv[1], "r");
10 if (arq == NULL) {
11 printf("Erro na leitura do arquivo.\n");
12 exit(2);
13 }
14 char linha[100];
15 while (fgets(linha, 100, arq) != NULL) {
16 printf("%s", linha);
17 }
18 fclose(arq);
19}
Exercícios
- Faça um programa que le um arquivo texto e imprime somente as linhas que tenham determinada palavra (grep).
- Faça um programa que lê nomes e idades de um arquivo texto e armazena esta informação em dois vetores.
- Ler um arquivo texto e gravar em outro arquivo de forma invertida. (pense em vários possíveis soluções e compare elas).
- Fazer programa que imprime apenas a linha n de um arquivo passado como parâmetro.