خوب دوست عزيز مي دونيد فرق اين كدي كه گفتيد با getch چيه!!؟
ببينيد تابع زير هر بار تنها يك كاراكتر مي خونه و به محض وارد كردن يك كاراكتر به دستور بعدي ميره!!

c=getch();
ولي دستور زير با خوندن يك يا چند كاراكتر كنترل برنامه رو به دستور بعدي نمي بره، و كاربر تا كليد enter رو نزنه به دستور بعدي نميره!!

cin.get();
حالا در اين برنامه تنها هدف تعداد كاركترها نيست. بلكه بايد تعداد كلمات را هم پيدا كرد، كه برايه اين كار با استفاده از دستوري كه شما گفتيد ،بايد كاركتري كه با دستور cin.get كاربر وارد مي كنه را در يك متغير ذخيره كنيد، و سپس در داخل حلقه آن مقدار را با جايخالي مقايسه كنيد (مانند مثال قبل) و اگر برابر بود، مقدار wordcount رو هم يك واحد اضافه كنيد!!!
***اما اگر اين كد را پياده سازي كنيد در اين حالت كاربر بايد بعد از هر كاركتر يك بار كليد Enter را فشار دهد!! دليل اين هم همان است كه در بالا عرض كردم!!!
دليل استفاده از getch فقط و فقط برايه اين است كه به محض ورود هر كاراكتر به خط بعد و دستور بعد ميرود و ديگر نيازي به زدن Enter بعد از هر كاراكتر نمي باشد!!

حال اگر شما مي خواهيد كه از كاراكتر نقطه به عنوان انتهاي جمله استفاده بشه خوب مي تونيد از حلقه زير استفاده كنيد!!

while(c=getch() !='.')

اما در مورد استفاده دستور if در داخل حلقه!! چون بعد از خواندن هر كاركتر با دستور getch و بررسيه اون اگر مخالف 'n\' باشه كنترل برنامه داخل حلقه وارد ميشود بنابراين در داخل حلقه بايد بررسي نمود كه آيا كاراكتر وارد شده برابر جايخالي است يا خير!!!؟ كه اين عبارت همان دستور if است، پس بايد در داخل حلقه بررسي شود!!

موفق باشي دوست عزيز