سؤال

أتساءل كل شيء عن ج، هل يمكنك إزالة الغموض

أنا أستخدم Turbo C

لدي هذا الرمز

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%c”,&c);
printf(“%d,%d”,a,b);

ثم SCANF لعدم فحص قيمة C

الإخراج هو: 1،2

إذا استخدمت هذا

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%c ”,&c);//note a blank after %c
printf(“%d,%d”,a,b);

ثم مسح قيمة ج.

الإخراج 1،2 1،2

نفس الرمز

scanf(“%d , %d”,&a,&b);
printf(“%d,%d”,a,b);
scanf(”%1s”,&c);
printf(“%d,%d”,a,b);

في هذه القطعة القيمة سيتم عرضها ولكن سيتم تعيين قيمة B 0

الإخراج 1،2 1،0

هل يمكنك شرح إجابات كل من الأسئلة.

لم أحصل على الإجابات حتى الآن ساعدني .......

هل كانت مفيدة؟

المحلول

كيف تعرف أنه لا يوجد حرف يتم فحصه c في الحالة الأولى؟ أفترض أنه لأنك تقدم بيان طباعة مثاليا ولا ترى أي شيء.

اقرأ صفحة الرجل حذرا حول سلوك المواصفات٪ C:

جيم
يطابق سلسلة من أحرف عدد العرض (الافتراضي 1)؛ يجب أن يكون المؤشر التالي مؤشرا للسحر، ويجب أن يكون هناك مجال كاف لجميع الأحرف (لا يتم إضافة NUL إنهاء). يتم قمع التخطي المعتاد من المساحة البيضاء الرائدة. لتخطي المساحة البيضاء أولا، استخدم مساحة صريحة بالتنسيق.

تم اضافة التأكيدات

إذا قمت بإدخال نموذج مثل 1, 2 a الفحص الأول يأكل 1 , 2 ويترك a, ، في أي نقطة الفحص الثاني يأكل الفضاء. وبعد لست متأكدا كيف المثال الثاني سيكون العمل في هذه الحالة.

حالا. هو على المال حول الحالة الثالثة.

نصائح أخرى

في حالتك الأخيرة، يجب القيام به مع حيث يتم إعداد القيم في الذاكرة.

الثاني scanf يضع سلسلة من الطول 1 على عنوان c - أي شخصية واحدة، تليها المنهي فارغة.

تخمين أين يذهب المنهي فارغ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top