Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal da Grande Dourados Laboratório de Programação 2 Prof. Anderson Bessa da Costa Lista 04a - Arquivos Texto – Liliane Shimizo Fernandes 1. Escreva um programa que leia dois valores inteiros e salve-os no arquivo entrada.txt. Abra o arquivo gerado no bloco de notas e certifique-se que o mesmo está correto. #include <stdio.h> #include <stdlib.h> int main () { FILE *arq; int num_1, num_2; arq = fopen("entrada.txt", "w"); if(arq == NULL){ printf("Erro ao abrir o arquivo!"); return 1; } else{ printf("Entre com dois valores: "); scanf("%d %d", &num_1, &num_2); fprintf(arq, "%d %d", num_1, num_2 ); fclose(arq); } return 0; } 2. Escreva um programa que leia dois valores inteiros armazenados no arquivo entrada.txt, some os valores e salve o resultado no arquivo saida.txt. #include <stdio.h> #include <stdlib.h> int main() { int soma, num_1, num_2; FILE* arq_entrada, *arq_saida; arq_entrada = fopen("entrada.txt", "r"); arq_saida = fopen("saida.txt", "w"); if (arq_entrada == NULL|| arq_saida == NULL) { puts("Erro ao abrir o arquivo!"); exit(1); } fscanf(arq_entrada, "%d %d", &num_1, &num_2); soma = num_1+num_2; fprintf(arq_saida, "%d", soma); printf("%d\n", soma); fclose(arq_entrada); fclose(arq_saida); return 0; } 3. Modifique o programa anterior para que sejam lidos vários pares de números do arquivo entrada.txt, até que seja alcançado o final do arquivo (não se sabe a priori quantos pares existem no arquivo). Imprima o resultado da soma de cada par no arquivo de saída. Dica: use a função feof para verificar se ainda existem dados para serem lidos. #include <stdio.h> #include <stdlib.h> int main() { int r, par; FILE* arq; arq = fopen("entrada.txt", "r"); if (arq == NULL) { puts("Erro ao abrir o arquivo!"); exit(1); } while (!feof(arq)){ fscanf(arq, "%d ", &r); if(r%2==0) par = r; printf("%d ", par); } fclose(arq); return 0; } 4. Escreva um programa em C chamado fib_arq.c que calcula e escreve em um arquivo texto 30_fib.txt os 30 primeiros números de Fibonacci. Crie um outro programa chamado consulta_fib.c que solicita um número n ao usuário (1 n 30) e este programa deve ler do arquivo texto o n-ésimo número de Fibonacci #include <stdio.h> #include <stdlib.h> int main () { FILE *fib_arq; fib_arq = fopen("30_fib.txt", "w"); int a=1, b=1, i, aux, num; if(fib_arq == NULL){ printf("Erro ao abrir o arquivo!"); return 1; }else{ printf("%d %d ", a, b); for(i=3; i<=30; i++){ aux = a + b; a = b; b = aux; printf("%d ", aux); fscanf(fib_arq, "%d", &aux); fclose(fib_arq); } } return 0; } Crie um outro programa chamado consulta_fib.c que solicita um número n ao usuário (1 n 30) e este programa deve ler do arquivo texto o n-ésimo número de Fibonacci #include <stdio.h> #include <stdlib.h> int main() { int n, a=1, b=1, i, aux; FILE *fib_entrada, *fib_saida; fib_entrada = fopen("30_fib.txt", "r"); fib_saida = fopen("saida.txt", "w"); if (fib_entrada == NULL|| fib_saida ==NULL) { puts("Erro ao abrir o arquivo!"); exit(1); } printf("Digite um numero inteiro: "); scanf("%d", &n); fscanf(fib_entrada, "%d", aux); printf("%d %d", a, b); if(n>=1 || n<=30){ for(i=2; i<n; i++){ aux = a + b; a = b; b = aux; fprintf(fib_saida, "%d %d %d", a, b, aux); printf(" %d ", aux); } }else printf("Digite novamente um numero inteiro:"); scanf("%d", &n); fclose(fib_entrada); fclose(fib_saida); return 0; }
Compartilhar