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.
/**************************************************
* UNIVAP- FCC - FACULDADE DE CIENCIA DA COMPUTACAO *
* 39U2A - ENGENHARIA DA COMPUTACAO *
* POP II - Professora Silene *
* Jose Eduardo S. Pereira *
* Matricula: 39020207 *
****************************************************/
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "dir.h"
void testadir(char []);
void grava_t(char [], char [], char []);
void grava_b(char [], char [], int );
void imp_tela(char [], char [], char []);
void main ()
{
char narqtxt[14],narqbin[14],ndir[14],cdir[MAXDIR];
char nome [100], endereco[100],va[100];
int vet[10],i,auxb;
randomize();
clrscr();
getcwd(cdir,MAXDIR);
printf ("\nDigite Nome do diretorio onde serao gravados
os arquivos: ");
fflush(stdin);
gets(ndir);
testadir(&ndir[0]);
printf ("\nDigite o Nome do arquivo texto: ");
fflush(stdin);
gets(narqtxt);
printf ("Digite o Nome do arquivo Binario: ");
fflush(stdin);
gets(narqbin);
printf ("\nDigite seu Nome: ");
fflush(stdin);
gets(nome);
grava_t(&narqtxt[0],&ndir[0],&nome[0]);
printf ("\nDigite seu Endereco: ");
fflush(stdin);
gets(endereco);
grava_t(&narqtxt[0],&ndir[0],&endereco[0]);
for(i=0;i<10;i++)
{
vet[i]=rand()%51;
auxb=vet[i];
if(i<5)
grava_b(&narqbin[0],&ndir[0],auxb);
itoa(vet[i],&va[i],10);
grava_t(&narqtxt[0],&ndir[0],&va[i]);
}
imp_tela(&narqtxt[0],&narqbin[0],&ndir[0]);
fflush(stdin);
getch();
chdir(cdir);
clrscr();
}
void testadir(char dirtest[14])
{
if (chdir(dirtest)!=0)
{
printf("\nDiretorio inexistente.");
printf("\nCriando Diretorio.");
if(mkdir(dirtest)!=0)
{
printf("\nNao foi possivel Criar Diretorio.");
fflush(stdin);
getch();
exit(0);
}
chdir(dirtest);
}
}
void grava_t (char narq[14],char dirg[14], char dado[100])
{
FILE *out;
chdir(dirg);
if ((out = fopen(&narq[0], "at"))== NULL)
{
fprintf(stderr, "\nNao foi possivel abrir arquivo
de Dados.\n");
fflush (stdin);
getch();
exit (0);
}
fputs(dado,out);
fputs("\n",out);
fclose(out);
}
void grava_b(char narq[14], char dirg[14], int vetg)
{
FILE *outb;
chdir(dirg);
if ((outb = fopen(&narq[0], "ab"))== NULL)
{
fprintf(stderr, "\nNao foi possivel abrir arquivo
de Dados.\n");
fflush (stdin);
getch();
exit (0);
}
fwrite(&vetg,sizeof(vetg),1,outb);
fclose(outb);
}
void imp_tela(char narqt[14],char narqb[14],char ndir[14])
{
char ip[100];
int vp[5],i;
FILE *in;
FILE *inb;
clrscr();
chdir(ndir);
if ((in = fopen(&narqt[0], "rt"))== NULL)
{
fprintf(stderr, "\nNao foi possivel abrir arquivo
de Dados.\n");
fflush (stdin);
getch();
exit (0);
}
while (!feof(in))
{
fgets(ip,strlen(ip)+1,in);
strcat(ip,"\0");
printf ("%s",ip);
}
if ((inb = fopen(&narqb[0], "rb"))== NULL)
{
fprintf(stderr, "\nNao foi possivel abrir arquivo
de Numeros.\n");
fflush (stdin);
getch();
exit (0);
}
while (!feof(inb))
fread(&vp[0],sizeof(vp),1,inb);
i=0;
while(i<5)
{
printf("%d\n",vp[i]);
i++;
}
fclose(in);
fclose(inb);
}
|