C++的问题,请问输入数字时如何实现:当达到小数点后2位的时候自动回车或换行?

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:14:55
最近遇到这个问题,就是输入数字的时候要求
1,输入没有达到小数点后2位的时候,要是已经输入完毕就按回车换行
2,达到小数点后2位的时候,一旦达到就自动确认或换行,反正就是避免有3位和以上的小数点出现。

请问这个怎么实现呢?主要是第2点,第一点好像是默认的
最好能给出代码,谢谢了

#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include <locale>

#define N 10 //定义输入数字的最大位数,包括小数点

int main(void)
{
using namespace std;

char buff[N+1];
buff[N] = '\0';

locale loc( "chinese-simplified" );

while(1)
{
memset(buff, 0, N);
int passDot = N-2;
printf("Input double number(any no digit key for exit):");
for(int i=0; i<10; i++)
{
if(i>passDot+2)
buff[i] = getch();
else
buff[i] = getche();

if(buff[i] == '\n' || buff[i] == '\r')
{
buff[i] = '\0';
break;
}
else if(buff[i] != '.' && !isdigit(buff[i], loc))
{
printf("\n\ninput was Not valid digit! Exit.\n");
exit(0);
}

if(buff[i] ==