تداخل کانتر حلقه درهنگام دریافت کاراکتر - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تداخل کانتر حلقه درهنگام دریافت کاراکتر

0 امتیاز

چرا در قطعه کد پس از دریافت عدد از ورودی و تعیین شرط و محدوده اجرای حلقه کانتر درست نمی شمارد

مثلا اگر n برابر6 باشد

سه مرتبه حلقه طی میشود؟

#include <stdio.h>
#include <stdlib.h>

int main()
{
char s;
int n;
int f=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%c",&s);
if(s == '+'){
printf("%d\n",++f);
}
}
return 0;
}

 

سوال شده اردیبهشت 24, 1399  بوسیله ی takavar (امتیاز 60)   4 8 18
از تابع getc برای دریافت یک کاراکتر استفاده کنید.

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

بله حق با شماست. زمانیکه قصد دارید کاراکتر از ورودی دریافت کنید اون کلید های Enter که قبل ورود کاراکتر وارد می کنید رو هم می خونه برای رفع این مشکل کافیه به صورت زیر عمل کنید:

scanf("%c",&s);
//تبدیل کنید به خط پاینن

scanf(" %c",&s);

 

پاسخ داده شده اردیبهشت 25, 1399 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد آذر 14, 1399 بوسیله ی مصطفی ساتکی
...