/* File: exemplo-in-out-files.c * ---------------------------- * * Este programa mostra como usar arquivos para leitura e escrita * */ #include #include #define SIZE 50 #define TAMANHO_NOME 20 int main() { int i, n, a[SIZE], b[SIZE]; FILE *arq_entrada; /* declaracao de pointers para variaveis do tipo FILE */ FILE *arq_saida; char nome_file_entrada[TAMANHO_NOME]; char nome_file_saida[TAMANHO_NOME]; printf("Digite o nome do arquivo de entrada: "); /* na hora da execucao o usuario deve fornecer o nome do arquivo de entrada (que quer usar para leitura). Por exemplo: dados.txt */ scanf("%s", nome_file_entrada); /* nome_file-entrada = "dados.txt" */ printf("Digite o nome do arquivo de saida: "); /* o usuario deve fornecer o nome do arquivo de saida (que quer usar para escrita). Por exemplo: saida.txt */ scanf("%s", nome_file_saida); /* apos a leitura temos que nome_file_saida = "saida.txt" */ arq_entrada = fopen(nome_file_entrada, "r"); /* o arquivo dados.txt e' aberto para leitura. Isto ficou especificado pelo "r" (read). */ arq_saida = fopen(nome_file_saida, "w"); /* o arquivo saida.txt e' aberto para escrita. Isto ficou especificado pelo "w" (write). */ if (arq_entrada == NULL){ /* arquivo dados.txt nao existe */ printf("arquivo de entrada %s nao existe\n", nome_file_entrada); return 1; /* sair */ } /* Leitura do arquivo dados.txt (um vetor a(n) e outro b(n)) */ /* Escrita no arquivo saida.txt (mesmos vetores que foram lidos) */ fscanf(arq_entrada, "%d", &n); fprintf(arq_saida, "n = %d \n", n); for (i=0; i< n; i++) { fscanf(arq_entrada, "%d", &a[i]); fprintf(arq_saida, "%4d", a[i]); } fprintf(arq_saida, "\n"); for (i=0; i< n; i++) { fscanf(arq_entrada, "%d", &b[i]); fprintf(arq_saida, "%4d", b[i]); } fclose(arq_entrada); fclose(arq_saida); return 0; } /* Execute este programa fornecendo os nomes * dados.txt e saida.txt * No arquivo dados.txt coloque, por exemplo, os dados assim: 5 1 2 3 4 5 6 7 8 9 10 Apos execucao desse programa, verifique com ficou o arquivo saida.txt */