Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CoringaIIBr

Poblema para ler caracteristicas

Recommended Posts

to começando a estudar c , meu codigo ta assim :

float saldo, conta, bonif, total;
char client;
printf("Digite as informacoes a seguir!");
printf("\nSeu Nome :");
scanf("%c", &client);
printf("\nDigite apenas os numeros da sua conta : ");
scanf("%f", &conta);
system("pause");

depois que ele executa o scanf ai digita o nome e talz , ai ele pula o resto do codigo e vai pro final , qual e o meu erro ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

 

O primeiro ponto é com relação ao nome char cliente, char é usado para entrada de um unico caractere, porem neste caso como você quer que o usuario entre com o nome você deve utilizar uma cadeia de caracteres (string) char cliente [16], para armazenar cada caractere do nome.

 

Em scanf se você quisesse apenas receber um unico caractere utilize a formatação "%c" para a leitura de um unico caractere, mas como estamos falando de uma cadeia de caracteres (string), neste caso devesse usar "%s".

 

E o motivo para o computador pular o resto do codigo é o de que muito provavelmente o scanf seguinte ao que recebe o nome do cliente está lendo as informacoes digitadas no scanf anterior, e as interpretando como as informacoes que devem ser usadas no scanf atual, fazendo assim que o programa aparentemente pule o resto do codigo.

 

Para evitar isso você deve limpar o buffer de entranda do teclado a cada scanf em seu codigo, existem N maneiras de se fazer isso em meu caso como uso o sistema operacional linux eu utilizo a função __fpurge(stdin); logo apos o scanf.

 

No windows aconselho que você procure a função de limpeza mais adequada a você, e sobre system("pause") e limpeza de buffer leia o seguinte link antes de continuar: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/

 

 

Espero ter Ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.