2- Solicitar ao usuário seu nome e endereço. Gravar estas informações num arquivo de texto.
Crie um vetor com 10 elementos do tipo inteiro e preencha-o com valores aleatório de 0 à 50.
Armazene todo vetor no arquivo de texto. Armazene somente os 5 primeiros números num
arquivo binário. Os arquivos, de texto e binário, deverão ser definido pelo usuário, o qual
deverá informar o diretório e o nome do arquivo. Caso o diretório informado não exista,
o programa deverá criá-lo. Verificar possíveis erros e imprimir elegantemente o conteúdo do
arquivos.
// Elaborado por : Lucas Jackson
// 1o. Eng da Computação A
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "process.h"
#include "dir.h>
int main(void)
{
FILE *NOMEND, *VETBIN, *verifica;
char nome[40],end[40],diretorio1[40],diretorio2[40];
char arquivo1[10],arquivo2[10],drive,dir1[40],dir2[40];
int i,diretorio,diretoriob,vet[1],sair=0;
char nome2[40],end2[40];
randomize();
clrscr();
do{
clrscr();
printf("Os arquivos serao gravados no drive c: ou d: ou a: ?\n");
scanf("%c",&drive);
}while((drive!='c')&&(drive!='d')&&(drive!='a'));
if(drive=='c')
{
strcpy(dir1,"c:/");
strcpy(dir2,"c:/");
}
if(drive=='d')
{
strcpy(dir1,"d:/");
strcpy(dir2,"d:/");
}
if(drive=='a')
{
strcpy(dir1,"a:/");
strcpy(dir2,"a:/");
}
printf("Digite o diretorio do arquivo txt:");
printf("\nCaso queira salvar na raiz apenas aperte enter:\n");
if(drive=='c')
printf("C:/");
else if(drive=='d')
printf("D:/");
else
printf("A:/");
fflush(stdin);
gets(diretorio1);
strcat(dir1,diretorio1);
diretorio = mkdir(dir1);
if (diretorio==0)
printf("Diretorio criado com sucesso!\n");
else
printf("OK! Diretorio existente\n");
printf("Digite o nome do arquivo txt:");
fflush(stdin);
gets(arquivo1);
strcat(arquivo1,".txt");
strcat(dir1,"/");
strcat(dir1,arquivo1);
printf("Digite o diretorio do arquivo binario:");
printf("\nCaso queira salvar na raiz apenas aperte enter:\n");
if(drive=='c')
printf("C:/");
else if(drive=='d')
printf("D:/");
else
printf("A:/");
fflush(stdin);
gets(diretorio2);
strcat(dir2,diretorio2);
diretoriob = mkdir(dir2);
if (diretoriob==0)
printf("Diretorio criado com sucesso!\n");
else
printf("OK! Diretorio existente\n");
printf("Digite o nome do arquivo binario:");
fflush(stdin);
gets(arquivo2);
strcat(arquivo2,".dbc");
strcat(dir2,"/");
strcat(dir2,arquivo2);
NOMEND = fopen (dir1,"w");
VETBIN = fopen (dir2,"wb");
if ((verifica = fopen(dir1, "w")) == NULL)
return 1;
if ((verifica = fopen(dir2, "w")) == NULL)
return 1;
clrscr();
printf("Digite o nome: ");
fflush(stdin);
gets(nome);
printf("Digite o endereco: ");
fflush(stdin);
gets(end);
fprintf(NOMEND,"%s",nome);
fprintf(NOMEND,"%s",end);
for(i=0; i<10; i++)
{
vet[i]=rand()%51;
fprintf(NOMEND,"%d",vet[i]);
if(i<5)
fprintf(VETBIN,"%d",vet[i]);
}
fclose (NOMEND);
fclose (VETBIN);
clrscr();
if ((verifica = fopen(dir1, "r")) == NULL)
return 1;
if ((verifica = fopen(dir2, "rb")) == NULL)
return 1;
NOMEND = fopen (dir1,"r");
VETBIN = fopen (dir2,"rb");
printf("Dados do arquivo texto:\n");
fgets(nome2,strlen(nome)+1,NOMEND);
puts(nome2);
printf("\n");
fgets(end2,strlen(end)+1,NOMEND);
puts(end2);
printf("\n\n");
for(i=0;i<10;i++)
{
fscanf(NOMEND,"%d",vet[i]);
printf("%d ",vet[i]);
}
printf("\n\n");
printf("Numeros do arquivo binario:\n\n");
for(i=0;i<5;i++)
{
fscanf(VETBIN,"%d",vet[i]);
printf("%d ",vet[i]);
}
fclose (NOMEND);
fclose (VETBIN);
getch();
return 0;
}
|