اطلاعیه

Collapse
No announcement yet.

تابع scanf در C

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تابع scanf در C

    سلام خدمت دوستان

    /* This is a code to calculate the summation as well as the average of three arbitrary numbers */
    #include <stdio.h>
    #define multiplier 10
    void main(void{
    double A,B,C;
    double sum, average;

    printf("please enter three numbers\n");
    scanf("%lg%lg%lg", &A, &B, &C);
    sum = A + B + C ;
    average = sum/3 ;

    printf("\n the summation of the numbers is %g\n", sum);
    printf("\n the averange of the numbers is %g\n", average);

    لطفا برام در مورد تابع scanf توضیح بدین
    که چجوری کیبورد رو می خونه و تکمیل فرآیند خوندنش چه زمانیه؟ مثلا وقتی enter زدم یعنی پایان نوشتن عددی که می خواستم وارد کنم؟
    سوییچ lg% چیه؟
    سوییچ g% هم چیکار می کنه؟
    خیلی ممنون
    همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
    لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
    تایپیک های من:
    حل تمام مشکلات atmega128a (eca.ir)
    آموزش کار با سایت (eca.ir)

    #2
    پاسخ : تابع scanf در C

    باسلام.
    scanf به معنای scan formatted هست یعنی اسکن ورودی به صورت فرمت بندی شده.این تابع ورودی خودش رو از stdin میگیره و هندل میکنه(اگه لینوکس بلد باشید احتمالا میدونید که همه چی توی لینوکس به صورت فایل های متنی هست و هرچیزی که در ترمینال نمایش داده میشه یا به ترمینال وارد میشه داخل سه استریم stdin , stdout ,stderr جاری میشه و این سه استریم میتونن به عنوان آرگومان به توابع داده بشن و توابع از متن های داخل اونا استفاده کنن.درمورد scanf و printf به طور پیشرفرض stdin و stdout آرگومان اونها هستن ولی درمورد fprintf , fscanf ,fgets,fputs , .... این آرگومان قابل تعیینه و میتونه stdin باشه یا یک رشته).
    اون چیزی که به طوری پیشفرض توی stdin هست همون چیزی هست که شما توی کیبرد تایپ میکنید ولی داخل ترمینال میشه با > یا < توی اینها چیزی نوشت.
    در مورد terminate condition هم باید بگم که برای توابع ذکر شده enter به عنوان انتهای متن استفاده شده و جایی که اینتر به عنوان سرسطر عمل میکنه از raw mode ترمینال استفاده میشه و انتهای متن معمولا Ctrl + d هست.
    سوئیچ g برای ممیز شناور استفاده میشه و اون l برای تعیین اندازه هست که میتونید برای اطلات بیشتر به سایت زیر سر بزنید:
    scanf - C++ Reference (cplusplus.com)

    دیدگاه


      #3
      پاسخ : تابع scanf در C

      نوشته اصلی توسط A.I.E نمایش پست ها
      باسلام.
      scanf به معنای scan formatted هست یعنی اسکن ورودی به صورت فرمت بندی شده.این تابع ورودی خودش رو از stdin میگیره و هندل میکنه(اگه لینوکس بلد باشید احتمالا میدونید که همه چی توی لینوکس به صورت فایل های متنی هست و هرچیزی که در ترمینال نمایش داده میشه یا به ترمینال وارد میشه داخل سه استریم stdin , stdout ,stderr جاری میشه و این سه استریم میتونن به عنوان آرگومان به توابع داده بشن و توابع از متن های داخل اونا استفاده کنن.درمورد scanf و printf به طور پیشرفرض stdin و stdout آرگومان اونها هستن ولی درمورد fprintf , fscanf ,fgets,fputs , .... این آرگومان قابل تعیینه و میتونه stdin باشه یا یک رشته).
      اون چیزی که به طوری پیشفرض توی stdin هست همون چیزی هست که شما توی کیبرد تایپ میکنید ولی داخل ترمینال میشه با > یا < توی اینها چیزی نوشت.
      در مورد terminate condition هم باید بگم که برای توابع ذکر شده enter به عنوان انتهای متن استفاده شده و جایی که اینتر به عنوان سرسطر عمل میکنه از raw mode ترمینال استفاده میشه و انتهای متن معمولا Ctrl + d هست.
      سوئیچ g برای ممیز شناور استفاده میشه و اون l برای تعیین اندازه هست که میتونید برای اطلات بیشتر به سایت زیر سر بزنید:
      scanf - C++ Reference (cplusplus.com)
      سلام خیلی ممنون
      ولی واقعا گیج شدم
      انگار خیلی چیزا رو باید یاد بگیرم
      ممنون از کمکتون
      *لینوکس اسنشیال در مورد این چیزاش هم آموزش می ده؟
      همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
      لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
      تایپیک های من:
      حل تمام مشکلات atmega128a (eca.ir)
      آموزش کار با سایت (eca.ir)

      دیدگاه


        #4
        پاسخ : تابع scanf در C

        باسلام.
        به طور کلی لینوکس اسنشیال برای شروع هست اسمش هم روشه ضروریات لینوکس.برای یادگیری بیشتر یه آموزش های الپیک جادی مراجعه کنید.
        البته برای توسعه میکروکنترلر خیلی نیازی ندارید ولی برای توسعه نرم افزار های لینوکسی یا حتی توسعه سیستم عامل و ماژول نویسی و درایور نویسی قطعا لینوکس واجبه.

        دیدگاه


          #5
          پاسخ : تابع scanf در C

          سلام خدمت دوستان
          فرق تابع scanf با getchar چیه؟
          تابع scanf منتظر فشدن کلید می مونه ولی getchar در لحظه بررسی می کنه؟
          ممنون
          همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
          لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
          تایپیک های من:
          حل تمام مشکلات atmega128a (eca.ir)
          آموزش کار با سایت (eca.ir)

          دیدگاه


            #6
            پاسخ : تابع scanf در C

            نوشته اصلی توسط electromohammad نمایش پست ها
            سلام خدمت دوستان
            فرق تابع scanf با getchar چیه؟
            تابع scanf منتظر فشدن کلید می مونه ولی getchar در لحظه بررسی می کنه؟
            ممنون
            سلام
            scanf فرمت قبول میکنه ولی getchar فقط یک کاراکتر میگیره. scanf به شدت منعطف تر از اون چیزیه که الآن ازش میدونید.

            دیدگاه

            لطفا صبر کنید...
            X