إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

C Programming Tips

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • C Programming Tips



    الموضوع دا مختص فى لغة C
    اى Trick او اى Hint يفيد اى حد فى البرمجة مع C تقدر تضيفه هنا


    الموضوع للغة C فقط اى رد مخالف هيتم حذفه دون الرجوع لصاحبه
    اى Hint اكتر من 100 سطر يتم إرفاقها كملف مرفق ..

    gotcha ?

    Start Postin'


    التعديل الأخير تم بواسطة StrikerX; الساعة 10-01-2009, 01:42 AM.
    Programming-Fr34ks[dot]NET
    Ma Weblog
    ابدأ بتعلم Python | Ruby
    كتاب البايثون متوافر الآن
    لا اتواجد بهذا المنتدى ... للإتصال

  • #2

    don't use scanf with sentences

    لاتستخدم scanf مع الجمل .. إستخدمها لمجرد إدخال قيمة variable وبس

    مثال : لو فى كود كدا
    كود:
    printf("ENTER : "); scanf("%s",string); 
    printf("string is =%s",string);
    على فرض إنك دخلت : This sentence.
    ال Output هيكون string is =This

    عشان كدا لو هتستخدم جمل إستخدم gets(string)

    thanx st0rm

    Programming-Fr34ks[dot]NET
    Ma Weblog
    ابدأ بتعلم Python | Ruby
    كتاب البايثون متوافر الآن
    لا اتواجد بهذا المنتدى ... للإتصال

    تعليق


    • #3
      The DOS Screen just disappear when i start C Console Program

      ... فى بعض الأحيان بتختفى شاشة الدوس بمجرد تشغيل البرنامج ومش بتقدر تشوف ال Output كان إيه

      الحل : إستخدم الفنكشن getchar()
      ليكون البرنامج فى وضع الإدخال فبتفضل شاشة البرنامج موجوده .. او تقدر تستخدمه من ال cmd
      وال HInt دى طبعا لمستخدمين Windows

      Programming-Fr34ks[dot]NET
      Ma Weblog
      ابدأ بتعلم Python | Ruby
      كتاب البايثون متوافر الآن
      لا اتواجد بهذا المنتدى ... للإتصال

      تعليق


      • #4
        السلام عليكم ،، :clown:

        موضوع رائع ،، واتمنى ان يشارك الجميع ،،

        ومع اني طولت من لغة السي ،، الا اني اذكر مشكلة سوف تكون واجهت الجميع

        طبعا الدالة scanf لا تقبل المسافات ،، كما ذكر اخونا StrikerX

        طيب افرض ان المستخدم ادخل هذا النص : This sentence
        طبعا الناتج هو ان الكلمة This راح تدخل كقيمة في المتغير
        واما الكلمة sentence ؟؟؟
        فراح تكون جالسة في ال buffer ( وبالعربي اعتقد المخزن المؤقت )

        طيب استدعينا الدالة scanf مرة اخرى لادخال اسم المستخدم مثلا
        كود:
        printf("ENTER : "); scanf("%s",string);
        الان لن يسمح لك البرنامج بادخال اي قيمة !!! وذلك لانه سيقرأ ما بداخل هذا ال buffer

        لذلك يجب افراغ محتويات ال buffer باستخدام
        كود:
        fflush(stdin);
        هذا ما لدي الان ،،
        تحياتي للجميع..

        تعليق


        • #5
          don't use gets !

          gets() is prone to buffer overflow, as it has no size-checking. It's never used. Replace it with fgets() or a loop with getch().

          الأفضل إنك تستخدم fgets
          كود:
           fgets(ptr, 200, stdin);
          كود:
             // Changed to fgets; syntax is:
             // fgets (
             //      char * buffer,   // Buffer to read into.
             //      int size,        // Maximum number of characters read.
             //      FILE * handle    // Handle to file to read from. "stdin" = standard input
          Programming-Fr34ks[dot]NET
          Ma Weblog
          ابدأ بتعلم Python | Ruby
          كتاب البايثون متوافر الآن
          لا اتواجد بهذا المنتدى ... للإتصال

          تعليق


          • #6
            mmmmmmmmmmmmmmm
            you can use a regulare exprations in scanf
            كود PHP:
            scanf("%[abcdef],&buffer); 
            ths will onley scan the letter pusted in[]
            the oppiset of this is using [^]
            كود PHP:
            scanf("%s[^abc],&buffer); 
            BOOOF , I AM GONE
            Still , you gotta wait for my PRESENT :D
            C programming arabic Tutorial|Programming-fr34ks

            تعليق


            • #7
              you can check for the allocating memory required by you
              كود PHP:
              ptr=malloc(100); 
              if you check it by if
              if(ptr=NULL)
              this is a good step for a sceure code
              BOOOF , I AM GONE
              Still , you gotta wait for my PRESENT :D
              C programming arabic Tutorial|Programming-fr34ks

              تعليق


              • #8
                using a function as a delay vactor;
                كود PHP:
                void function (void);
                static 
                long int i;
                for(
                i=0;i<150000;i++)

                BOOOF , I AM GONE
                Still , you gotta wait for my PRESENT :D
                C programming arabic Tutorial|Programming-fr34ks

                تعليق


                • #9
                  don't forget to free the allocated memory
                  مش تنسى تحرر الميمورى اللى إنت حجزتها بإستخدام
                  free()
                  Programming-Fr34ks[dot]NET
                  Ma Weblog
                  ابدأ بتعلم Python | Ruby
                  كتاب البايثون متوافر الآن
                  لا اتواجد بهذا المنتدى ... للإتصال

                  تعليق


                  • #10
                    to delay

                    you have to include
                    stdlib.h
                    كود:
                    int delay()
                    {
                    	system("sleep 5");
                    }
                    this fun will delay 5sec ...

                    h4v3 fun
                    GCS

                    تعليق


                    • #11
                      CPU delay
                      or you could simply call
                      كود PHP:
                       sleep(1500
                      ;
                      BOOOF , I AM GONE
                      Still , you gotta wait for my PRESENT :D
                      C programming arabic Tutorial|Programming-fr34ks

                      تعليق


                      • #12
                        ثانكس ستورم .. جميل جدا..................
                        GCS

                        تعليق


                        • #13
                          hi stOrm
                          مشكور على الاضافات ..
                          لكن الدالة sleep لا تعمل الا على borland c++ ،، وذلك بتضمين الملف dos.h
                          او يمكنك استخدام دوال ال win32 API لعمل مثل ذلك.

                          طبعا هذا الكلام على الويندوز. :angry_red:

                          ================

                          كود:
                          void function (void);
                          static long int i;
                          for(i=0;i<150000;i++)
                          ;
                          وبالنسبة لهذه الدالة ،، لماذا المتغير i ستاتك static !!
                          المتغير static يعني انه حين تستدعى الدالة عدة مرات فانه لا يبدأ من الصفر ،، وانما من اخر قيمة وصل اليها

                          صحيح ،، ولا انا ناسي !!

                          +++++++++++++++++
                          تحياتي للجميع

                          تعليق


                          • #14
                            المشاركة الأصلية بواسطة SudaNix مشاهدة المشاركة
                            hi stOrm
                            مشكور على الاضافات ..
                            لكن الدالة sleep لا تعمل الا على borland c++ ،، وذلك بتضمين الملف dos.h
                            او يمكنك استخدام دوال ال win32 API لعمل مثل ذلك.

                            طبعا هذا الكلام على الويندوز. :angry_red:

                            ================

                            كود:
                            void function (void);
                            static long int i;
                            for(i=0;i<150000;i++)
                            ;
                            وبالنسبة لهذه الدالة ،، لماذا المتغير i ستاتك static !!
                            المتغير static يعني انه حين تستدعى الدالة عدة مرات فانه لا يبدأ من الصفر ،، وانما من اخر قيمة وصل اليها

                            صحيح ،، ولا انا ناسي !!

                            +++++++++++++++++
                            تحياتي للجميع


                            جرب مره اخرى اخي .. اكتب sleep(sec);
                            GCS

                            تعليق


                            • #15
                              منورنا يالينكسر باشا
                              انا ال dev -cpp ظبتني لو مش عايز استعدي ال stdio حتي هو بيستدعيها اوتوماتيكي توماتيكي انا لاقي وقتي
                              BOOOF , I AM GONE
                              Still , you gotta wait for my PRESENT :D
                              C programming arabic Tutorial|Programming-fr34ks

                              تعليق

                              يعمل...
                              X