ему нужен контроль ввода, а не контроль правильности ввода ) используй посимвольное считывание без эха, и в случае если все ок - то выводи на экран симввол (точку или цифру) и записывай в буфер, который позже будет преобразован в float... например так (код далек от совершенства)
| Код | char ch; char buf[1024]; char* pBuf = buf; int npCount = 0; while(1){ ch = _getch(); if(ch==13) break; //if <enter> if(ch<'0' || ch >'9') if(ch!='.' && ch!='\n') continue; if (ch=='.') { if(npCount==1)continue; npCount ++; } *pBuf = ch; if(pBuf > buf+sizeof(buf)) break; putc(ch, stdout); ++pBuf; } *pBuf = '\0'; double f = atof(buf);
|
|