I`m using the following code and it works fine till the last line.atof should convert a string to float.It works fine with atoi(ansi to int).With the atof it turns out weird numbers in the range of thousands. What am I doing wrong? I`d appreciate any help.
code:
Code:
void InputStr(char *buffer, unsigned short maxlen)
{
  SCR_STATE ss1;
  signed short key;
  unsigned short i = 0;
  buffer[0] = 0;
  SaveScrState (&ss1);  
 do{	 
    MoveTo (ss1.CurX, ss1.CurY);       
     SaveScrState (&ss1);
      if ( i==3 ) {printf ("%s  ", buffer);}    
       else                                                 printf ("%s_  ", buffer);             
     key = ngetchx ();                          
     if (key >= '0' && key <= '9' && i < maxlen)                                            //48-57 
      buffer[i++] = key;                        
      else if (key == KEY_BACKSPACE )   i--;                                                  //257 
     else if (key==173 && i==0) buffer[i++] = key;                                              //(-) 
     else if (key==46)buffer[i++] = key;   //comma
     buffer[i] = 0;                               
   } while (key != KEY_ENTER);

      Input = atof(buffer);//buffer is string      
}

&#91;code]&#91;/code]tagged by Salem