brunopandradef
-
Posts
2 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por brunopandradef
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Programa em c
em C/C#/C++
Postado
Preciso saber por que quando eu chamo a funçao "funbusca" ela fica repetindo varias vezes o que ta escrito no cadastro.txt ..???.>>>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
char url[]="cadastro.txt";
struct registro
{
char nome[25];
char bairro[20];
char uf[2];
char rua[25];
char cidade[20];
char telefone[20];
int cpf, num;
char cod[20];
};
void gotoxy(int x, int y){
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1});
}
void funcadastro()
{
struct registro cadastro;
int resp;
FILE *arq;
arq = fopen(url, "a+");
if(arq == NULL)
printf("Erro, nao foi possivel abrir o arquivo\n");
else {
gotoxy(15,2);
printf("Informe seu codigo: ");
scanf("%d",&cadastro.cod);
fprintf(arq, "Codigo: %d\n", cadastro.cod);
gotoxy(15,4);
printf("Informe seu nome: ");
fflush(stdin);
gets(cadastro.nome);
fprintf(arq, "Nome: %s\n", cadastro.nome);
gotoxy(15,6);
printf("Informe seu UF: ");
fflush(stdin);
gets(cadastro.uf);
fprintf(arq, "UF: %s\n", cadastro.uf);
gotoxy(15,8);
printf("Informe sua cidade: ");
fflush(stdin);
gets(cadastro.cidade);
fprintf(arq, "Cidade: %s\n", cadastro.cidade);
gotoxy(15,10);
printf("Informe seu bairro: ");
fflush(stdin);
gets(cadastro.bairro);
fprintf(arq, "Bairro: %s\n", cadastro.bairro);
gotoxy(15,12);
printf("Informe sua rua: ");
fflush(stdin);
gets(cadastro.rua);
fprintf(arq, "Rua: %s\n", cadastro.rua);
gotoxy(15,14);
printf("Informe seu CPF: ");
scanf ("%d",&cadastro.cpf);
fprintf(arq, "CPF: %d\n", cadastro.cpf);
gotoxy(15,16);
printf("Informe seu numero: ");
scanf("%d",&cadastro.num);
fprintf(arq, "Numero: %d\n", cadastro.num);
gotoxy(15,18);
printf("Informe seu telefone: ");
fflush(stdin);
gets(cadastro.telefone);
fprintf(arq, "Telefone: %s\n", cadastro.telefone);
}
fclose(arq);
gotoxy(15,20);
system("cls");
printf("\t\tDeseja continuar? 1-SIM / 0-NAO: ");
scanf("%d", &resp);
while(resp < 0 || resp > 1)
{
printf("Valor incorreto tente novamente, 1-SIM / 2-NAO: ");
scanf("%d",&resp);
}
if(resp != 0)
return main();
}
void funbusca ()
{
FILE *arq;
char linha[100];
char *result;
int i;
// Abre um arquivo TEXTO para LEITURA
arq = fopen("cadastro.txt", "rt");
if (arq == NULL) // Se houve erro na abertura
{
printf("Problemas na abertura do arquivo\n");
return;
}
i = 1;
while (!feof(arq))
{
result = fgets(linha, 100, arq);
if (result)
printf(linha);
}
fclose(arq);
}
int main()
{
int resp;
gotoxy(15,2);
printf("1 - CADASTRO\n");
gotoxy(15,4);
printf("2 - ALTERACAO\n");
gotoxy(15,6);
printf("3 - BUSCA\n");
gotoxy(15,8);
printf("4 - EXCLUSAO\n");
gotoxy(15,10);
printf("0 - SAIR\n");
gotoxy(15,12);
printf("Escolha a opcao desejada: ");
scanf("%d", &resp);
while(resp < 0 || resp > 4)
{
printf("Valor incorreto, Tente novamente: ");
scanf("%d", &resp);
}
system("cls");
while(resp!=0)
{
switch(resp)
{
case 1:
funcadastro();
break;
case 2:
//funalteracao();
break;
case 3:
funbusca();
break;
case 0:
printf("\nSAINDOO\n");
break;
}
}
return 0;
}