Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou treinando sobre arquivos, e fiz um programa simples de cadastro e pesquisa, e ele faz o que eu queria. Mas olhando melhor na função cadastro, queria uma idéia de como eu devo tratar as entradas para o usuário não inserir um inteiro no campo de string nome e não inserir uma string no campo inteiro idade. Olha o código ae.
#include <stdio.h>
main()
{
char variavel;
int loop = 1;
while(loop)
{
printf("...>>Progwy\nConsulta(p),Cadastro(c),Sair(s):");
scanf(" %c", &variavel);
switch(variavel)
{
case 'c':
case 'C':
cadastro();
break;
case 'p':
case 'P':
pesquisa();
break;
case 's':
case 'S':
loop = 0;
break;
default:
printf("Opcao Invalida.\n");
}
}
}
cadastro()
{
FILE *fp;
FILE *idad;
char nome[40];
int idade;
fp = fopen("base_nome", "a+");
idad = fopen("base_idade", "a+");
printf("Seu nome: ");
scanf(" %s", &nome);
fprintf(fp, " %s", nome);
printf("Sua idade: ");
scanf(" %d", &idade);
fprintf(idad, " %d", idade);
fclose(fp);
}
pesquisa()
{
FILE *fp;
FILE *idad;
char nome[40];
int idade;
fp = fopen("base_nome","a+");
printf("Arquivo base_nome aberto\n");
idad = fopen("base_idade","a+");
printf("Arquivo base_idade aberto\n\n\n");
fscanf(fp, "%s", nome);
printf("Arquivo linkado a variavel\n");
fscanf(idad," %d", &idade);
printf("Arquivo linkado a variavel\n\n\n");
printf("Nome: %s\n", nome);
printf("Idade: %d\n\n", idade);
}Carregando comentários...