"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقرأ \"cin\" الخاص بـ Turbo C++ الكلمة الأولى فقط؟

لماذا يقرأ \"cin\" الخاص بـ Turbo C++ الكلمة الأولى فقط؟

تم النشر بتاريخ 2024-11-05
تصفح:869

Why Does Turbo C  \'s \

قيود "cin" في Turbo C: قراءة الكلمة الأولى فقط

في Turbo C، مشغل الإدخال "cin" لديه القيود عند التعامل مع صفائف الأحرف. على وجه التحديد، يقرأ فقط حتى يواجه حرف مسافة بيضاء (على سبيل المثال، مسافة أو سطر جديد). يمكن أن يؤدي هذا إلى سلوك غير متوقع عند محاولة قراءة مدخلات متعددة الكلمات.

خذ بعين الاعتبار رمز Turbo C التالي:

#include 

class String {
  char str[100];

public:
  void input() {
    cout > str;
  }
  void display() {
    cout 

إذا قمت بتشغيل هذا الرمز وأدخلت الإدخال "ستيف هوكينج"، فإنك تتوقع أن يعرض الإخراج السلسلة بأكملها. ومع ذلك، نظرًا لوجود قيود "cin"، يتم عرض "Steve" فقط، لأن "cin" يتوقف عن القراءة عند أول حرف مسافة بيضاء (مسافة).

التغلب على القيود

لمعالجة هذا القيد، يمكنك استخدام طرق بديلة لقراءة صفائف الأحرف في Turbo C:

  1. cin.getline(str, sizeof str);
    هذا يقرأ الأسلوب سطرًا كاملاً من الإدخال، بما في ذلك أحرف المسافات البيضاء، في مصفوفة char المحددة.
  2. std::getline(cin, str);
    إذا كان لديك حق الوصول إلى المعيار مكتبة، يمكنك استخدام هذه الطريقة لقراءة سطر كامل في كائن سلسلة، مما يوفر المزيد من المرونة.
  3. تنفيذ فئة السلسلة الخاصة بك:
    يمكنك تحديد فئة السلسلة الخاصة بك التي تتعامل مع الإدخال والإخراج بشكل أكثر كفاءة.

توصية

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3