Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
to tentando fazer um programa aki so olha aki tipo era pra escrever 5 nomes e registro mais ta pulando pra escrever o segundo nome so escreve o primeiro e to precisando colocar uma função pesquisa por nome,e Remoção por nome ajuda ai galera muito obrigado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define TAM 5
struct reg{
char nome[40];
float peso, altura;
int idade;
}A;
//Funçao inserir dados
void inserir(reg A[]){
int i;
for (i = 0; i < TAM; i++){
printf("Entre com seu nome\n");
gets(A[i].nome);
//fflush(stdin);
printf("Entre com seu peso\n");
scanf("%f",&A[i].peso);
printf("Entre com sua altura\n");
scanf("%f",&A[i].altura);
printf("Entre com sua idade\n");
scanf("%d",&A[i].idade);
}
}
//Função mostar dados
void mostrar(reg A[]){
int i;
for (i = 0; i < TAM; i++){
printf("\n Nome = %s\n",A[i].nome);
printf(" Peso = %.2f\n",A[i].peso);
printf(" Altura = %.2f\n",A[i].altura);
printf(" Idade = %d\n\n",A[i].idade);
}
} char op;
struct reg A[TAM];
do{
printf("\n Escolha uma das opçoes:\n");
printf(" i - Inserir dados\n");
printf(" m - Mostrar dados\n");
printf(" s - Sair\n");
fflush(stdin);
op = getche();
printf("\n\n");
system("CLS");
if (op == 'i' || op == 'I')
inserir(A);
else if(op == 'm' || op == 'M')
mostrar(A);
else
printf(" Voce escolheu sair do programa\n\n");
}
while(op == 'i' || op =='I' ||op == 'm' || op == 'M');
system("PAUSE");
return 0;
}Na verdade, não. :-)
Ele não deve ser usado. Gera comportamento indefinido.
Sugiro usar fgets e sscanf.
eu costumo usar o fflush(stdin); antes do scanf("...",&variavel);
existem diversas maneiras pra isso, porem nao estou lembrado agora,
mas sempre que você for utilizar variaveis do tipo caracter, recomendo o uso de fflush e a leitura do arquivo com o scanf...
eu nao recomendo isso, mas eu por relaxo uso o fflush() toda vez que é necessário o scanf ou gets() até mesmo pra variaveis de tipos nao char...;P
Maikon, seja um pouco consistente no que recomenda:
>
mas sempre que você for utilizar variaveis do tipo caracter, recomendo o uso de fflush e a leitura do arquivo com o scanf...
eu nao recomendo isso, mas eu por relaxo uso o fflush() toda vez que é necessário o scanf ou gets() até mesmo pra variaveis de tipos nao char...
Isso confunde os iniciantes.
Aqui, via de regra, o pessoal mais antigo sempre vai pedir que tirem coisas como fflush(stdin) e gets do código. Normalmente o uso disso vem de algum vício de livro ou professor. Tem até uns tópicos discutindo a coisa mais a fundo.
O comando "fflush(stdin)" está como comentário, por que?
Ele deveria estar antes da leitura do nome para limpar o buffer.
Faça isso e retorne aqui, caso o problema continue. :thumbsup: