Buscar

exercicios cap 10

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

#include "stdio.h"
#define ex1
#ifdef ex1
/*
	Crie uma função para escrever num arquivo os dados do exercicio 3 de estruturas.
	(utilize a função 'fputs').
*/
int main()
{
	FILE *fopen(); // A função "fopen()" retorna um ponteiro do tipo "FILE". Por isso, tem que fazer esta declaração.
	FILE *p; // Declara o ponteiro "p" do tipo "FILE"
	char ch;
	char i;
	printf("exemplo_1 \n\n");
	printf("abre o arquivo no modo escrita w \n");
	if((p = fopen("teste1.txt","w"))== NULL)
	{
		printf("erro na abertura do arquivo \n");
		exit(0); // Encerra o programa e volta ao sistema operacional.
	}
	printf("Escreve 4 caracteres no arquivo teste1 \n");
	putc('a', p);
	putc(66, p);
	ch = 'e';
		putc(ch, p);
	i = 70;
	putc(i,p);
	fclose(p);
	getchar();
}
#endif
//#define Capitulo_10_Exercicio_2
#ifdef ex2
/*
	Escreva uma função para ler do arquivo os dados gravados do exercicio anterior. (utilize as função 'fgets').
*/
int main()
{
	FILE *p = fopen("teste4.txt","w");
	static char s[] = "teste com variavel";
	char a[40];
	char b[100];
	if(!p)
	{
		perror("teste4.txt");
		exit(1);
	}
	printf("escreve as strings no arquivo teste4\n");
	fputs("isto e' um pequeno teste com uma string",p);
	fputs(s,p);
	fclose(p);
	system("pause");
	FILE *pRead = fopen("teste4.txt","r");
	if(!pRead)
	{
		perror("teste4.txt");
		exit(1);
	}
	printf("le as strings do arquivo teste3\n\n");
	fgets(a,40,pRead);
	fgets(b,100,pRead);
	printf("escreve as strings lidas na tela\n\n");
	puts(a);
	puts(b);
	fclose(pRead);
}
#endif
//#define Capitulo_10_Exercicio_3
#ifdef ex3
/*
	Reescreva as funções de gravação e leitura no arquivo dos exercícios anteriores utilizando as funções 'fwrite e 'fread'.
*/
int main()
{
	FILE *pWrite, *pRead;
	pWrite = fopen("teste4.txt","w");
	char s[] = "teste com variavel";
	char a[40];
	char b[100];
	if(!pWrite)
	{
		perror("teste4.txt");
		exit(1);
	}
	printf("escreve as strings no arquivo teste4\n");
	fwrite("isto e' um pequeno teste com uma string ",41,1,pWrite);
	fwrite(s,18,1,pWrite);
	system("pause");
	fclose(pWrite);
	pRead = fopen("teste4.txt", "r");
	if(!pRead)
	{
		perror("teste4.txt");
		exit(1);
	}
	int cont = strlen(s);
	printf("O numero de caracteres do array: %d \n\n",cont);
	printf("le as strings do arquivo teste4\n\n");
	fread(a,40,1,pRead);
	fread(b,100,1,pRead);
	printf("escreve as strings lidas na tela\n\n");
	puts(a);
	puts(b);
	fclose(pRead);
}
#endif
//#define Capitulo_10_Exercicio_4
#ifdef ex4
/*
	A partir do exercício 6 do capítulo de funções, acrescente as funções de gravação e leitura dos dados em um arquivo.
	Inclua-os como opções no menu.
*/
int main()
{
	int comparador = 0;
	while(comparador != 3)
	{
		int retornoResultWrite;
		printf("Digite a opcao '1' para Ler o arquivo:\n\n");
		printf("Digite a opcao '2' para Gravar no arquivo:\n\n");
		printf("Digite a opcao '3' para sair do programa:\n\n");
		scanf("%d", &comparador);
		switch(comparador)
		{
		case 1:
		{
			LeituraDoArquivo();
			break;
		}
		case 2:
		{
			(retornoResultWrite = GravarNoArquivo()) > 0 ? printf("Os dados foram registrados com sucesso!!\n") : printf("Os dados nao foram registrados com sucesso!!\n");
			break;
		}
		}
	}
}
LeituraDoArquivo()
{
	FILE *pRead;
	char a[40];
	pRead = fopen("teste4.txt", "r");
	if(!pRead)
	{
		perror("teste4.txt");
		exit(1);
	}
	fread(a,40,1,pRead);
	puts(a);
}
GravarNoArquivo()
{
	FILE *pWrite;
	int resultWrite = 0;
	pWrite = fopen("teste4.txt","w");
	if(!pWrite)
	{
		perror("teste4.txt");
		exit(1);
	}
	fwrite("isto e' um pequeno teste com uma string \n\n",41,1,pWrite);
	fclose(pWrite);
	resultWrite = 1;
	return resultWrite;
}
#endif
//#define Capitulo_10_Exercicio_5
#ifdef ex5
/*
	Reescreva o programa do exercício anterior fazendo a leitura e escrita de dados no arquivo ao entrar e sair do programa.
	Retire estas opções do menu.
*/
#endif
//#define Capitulo_10_Exercicio_6
#ifdef ex6
/*
	Reescreva o programa do exercício anterior retirando o vetor de estruturas deixando apenas uma estrutura simples.
	Escreva e leia os registros direto no arquivo utilizando apenas esta estrutura. (utilize a função 'fseek').
*/
int _tamanhoNome, _tamanhoEnd, _tamanhoIdade;
int retornoResultado;
char _nome[50];
char _endereco[100];
int _idade;
int main()
{
	int comparador = 0;
	while(comparador != 6)
	{
		printf("1 - Inserir novos registros\n");
		printf("2 - Ler o arquivo inteiro\n");
		printf("3 - Procurar registro\n");
		printf("4 - Alterar registro\n");
		printf("5 - Apagar registro\n");
		printf("6 - Sair\n");
		scanf("%d", &comparador);
		switch(comparador)
		{
		case 1:
		{
			GravarRegistro();
			break;
		}
		case 2:
		{
			LerArquivo();
			break;
		}
		case 3:
		{
			ProcurarRegistro();
			break;
		}
		case 4:
		{
			AlterarRegistro();
			break;
		}
		case 5:
		{
			ApagarRegistro();
			break;
		}
		}
	}
}
GravarRegistro()
{
	FILE *pWrite;
	pWrite = fopen("Cadastro.txt","w");
	printf("Digite um nome :\n");
	scanf("%s", &_nome);
	printf("Digite um endereco :\n");
	scanf("%s", &_endereco);
	printf("Digite a idade :\n");
	scanf("%d", &_idade);
	_tamanhoNome = strlen(_nome);
	fwrite(_nome,_tamanhoNome,2,pWrite);
	fwrite(_endereco, _tamanhoEnd, 2, pWrite);
	fwrite(_idade, _tamanhoIdade, 2, pWrite);
	fclose(pWrite);
	return retornoResultado = 1;
}
LerArquivo()
{
	FILE *pRead;
	pRead = fopen("Cadastro.txt", "r");
	char a[50];
	char b[100];
	int c;
	if(!pRead)
	{
		perror("teste4.txt");
		exit(1);
	}
	fread(a,50,1,pRead);
	fread(b,100,2,pRead);
	fread(c,sizeof(_idade),2,pRead);
	puts(a);
	puts(b);
	puts(c);
}
ProcurarRegistro()
{
	FILE *pSearch;
	while((fscanf(pSearch, "%s", _nome)) != EOF)
	{
		if(!strcmp(_nome, "Nome:") && (fscanf(pSearch, "%s", _nome)) != EOF )
			printf("Nome.: %s", _nome);
		if(!strcmp(_idade, "Idade:") && (fscanf(pSearch, "%s", _idade)) != EOF )
			printf("Idade: %d", _idade);
	}
}
AlterarRegistro()
{
}
ApagarRegistro()
{
}
#endif

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais