float linguagem C

Marrafeiro

Power Member
Boa noite,

Estou aqui com uma duvida, quando pedem ao utilizador para inserir um valor, como por exemplo dinheiro.
faço o pedido como float e tenho o setlocale como portugues (sendo assim obrigatorio o uso da virgula), se o utilizador mesmo assim insere um ponto o programa crasha. Como posso dar a volta a isso?
 
Ora boas :)

Alguns pontos que acho que devo referir:

- No sistema internacional, o ponto '.' separa a parte inteira da parte decimal, enquanto que a vírgula ',' separa de 3 em 3 casas inteiras. Devias habituar-te a isto, mas isso é apenas a minha recomendação.

- Uma possível solução para isso seria usares excepções, mas no entanto visto que ainda deves estar nos inícios não te recomendo ires por aí

Por isso, na minha opinião, o que deverias fazer era trabalhar mesmo com o '.'

Cumprimentos
 
Penso que toda a gente percebeu mal a pergunta.
Eu sei que o sistema internacional é usado o ‘.’ E que em Portugal é a ‘,’. Mas como toda a gente sabe o utilizar pode muito bem inserir um ‘.’ Em vez de uma virgula no programa e crashar aquilo tudo. Mas ja resolvi o problema.

Resolvi da seguinte forma, caso alguem tenha mais essa duvida.

While(scanf(“%f”,&variavel)!=1){
fflush(stdin) }

E ja esta resolvido, se for inserido um ‘.’ Volta a pedir um valor.

Nao sou bem bem iniciado, ja nao programo é a bastante tempo e agora basicamente estou a recordar
 
Back
Topo