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: Lucio Guska e Bianca
// 1o. Eng da Computação A
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
#include "ctype.h"
#include "dir.h"
void main()
{
int i,mat[10],mat2[5],estado,l=0,c=0;
char arquivo[50],caminho[80],nome[30],end[30]
char temp[50],tudo[70];
char old_dir[MAXDIR];
char _dir[MAXDIR];
FILE *in;
randomize();
clrscr();
// entra dados da matriz, grava em arquivo txt
for(i=0;i<=9;i++)
mat[i]=rand()%51;
printf("\nEntre com nome do arquivo e extensao
ex: (TESTE.TXT) ");
gets(arquivo);
fflush stdin;
strcpy(_dir,"\\");
getcurdir(0, old_dir);
getcurdir(0, temp);
strcat(_dir,temp);
printf("\nEntre com diretorio a gravar ex: C:\\%s :",old_dir);
gets(caminho);
if (chdir(caminho))
{
printf("Criando Diretorio...");
estado=mkdir(caminho);
if(!estado)
{
if(chdir(caminho))
{
perror("chdir()");
exit(1);
}
}
else
{
printf("O diretorio %s nÆo pode ser criado ou caminho
muito complexo",caminho);
exit(1);
}
}
getcurdir(0,old_dir);
printf("\nAgora estamos no diretorio C:\\%s",old_dir);
if((in=fopen(arquivo,"w"))!=NULL)
{
//clrscr();
printf("\n\nEntre com o seu nome: ");
gets(nome);
printf("Entre com seu endere‡o: ");
gets(end);
fputs(nome,in);
fputs("\n",in);
fputs(end,in);
for(i=0;i<=9;i++)
{
fputs("\n",in);
fputs(itoa(mat[i],temp,10),in);
}
getcurdir(0,old_dir);
printf("\nGrava‡Æo feita em C:\\%s",old_dir);
fclose(in);
in=fopen(arquivo,"r");
//clrscr();
printf("\n\nArquivo texto\n\n");
while(!feof(in))
{
fgets(tudo,70,in);
printf("%s",tudo);
}
fclose(in);
}
else
printf("\nNÆo posso criar arquivo!");
window(1,1,80,10);
clrscr();
window(1,1,80,25);
printf("\nEntre o nome do arquivo binario ex: TESTE.DBC ");
gets(arquivo);
fflush stdin;
getcurdir(0, old_dir); //obtenho o diretorio no drive padrao
printf("\nEntre com diretorio a gravar ex: C:\\%s :",old_dir);
gets(caminho);
if (chdir(caminho))
{
printf("Criando Diretorio...");
estado=mkdir(caminho);
if(!estado)
{
if(chdir(caminho))
{
perror("chdir()");
exit(1);
}
}
else
{
printf("O diretorio %s nÆo pode ser criado ou caminho
muito complexo",caminho);
exit(1);
}
}
printf("\nAgora estamos no diretorio %s",caminho);
if((in=fopen(arquivo,"wb"))!=NULL)
{
fwrite(mat,10,1,in);
fclose(in);
in=fopen(arquivo,"rb");
//clrscr();
fread(mat2,sizeof(mat),1,in);
l=12;c=35;
gotoxy(c,l);
printf("Arquivo binario\n\n");
l+=4;
for(i=0;i<=4;i++)
{
gotoxy(c,l);
printf("Valor %d eh %d",i,mat2[i]);
l++;
}
getcurdir(0,old_dir);
l+=2;
gotoxy(c,l);
printf("Grava‡Æo feita em C:\\%s",old_dir);
}
else
printf("\nNÆo posso criar arquivo!");
chdir(_dir); l++;
gotoxy(c,l);
printf("Voltamos ao Diretorio \%s",_dir);
getch();
}
|