این موضوع دقیقا می شود ساختار یک کامپایلر، پس شما باید تشخیص دهید عدد هست یا رشته و کجا کاربر اشتباه وارد می کند(پس از ورود داده ها).
وظیفه شما این است که تک تک قطعه رشته ها را که بین دو space هست از EditBox بخوانید. سپس تشخیص دهید چه نوعی هست و بعدبا توجه به نوعشان، تبدیل ها را انجام دهید.
مثلا دومین مورد عدد صحیح هست و کاربر اشتباها 435a وارد می کند، اولین حرف رشته را بررسی می کنید که آیا اصلا عدد هست یا نه. (با isdigit یا istdigit_ ) سپس برای عدد، وقتی با strtol آن را تبدیل کنید پارامتر دوم این تابع، رشته a را به عنوان خطا بر می گرداند و شما هم به کاربر پیام می دهید عدد را اشتباه وارد کرده اید یا a اضافی هست.
برای عدد اعشاری از strtod استفاده کنید.
مثلا سومین مورد یک کارکتر هست و بین دو space کارکتر F بدست می آید، طبق روال عادی مجددا اولین حرف رشته را چک می کنید با isdigit که معلوم می شود عدد نیست، این بار باز هم چک می کنید که آیا حرف هست یا خیر اشتباها سایر کارکترها (با iswalpha برای a-z) اگر بود آن را مستقیم رشته یا کارکتر در نظر می گیرید.
TCHAR str[] = TEXT("text");
if (iswalpha(str[0])) // check iswupper and iswlower too
// It is a string or a character
else
// It is a number
پس در اینجا ما اصلا کاری به خطاهای برگردانده شده نداشتیم. مثلا تنها برای overflow می توانید از errno توسط ERANGE استفاده کنید. (برای توابع ذکر شده فوق)