قيود "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:
- cin.getline(str, sizeof str);
هذا يقرأ الأسلوب سطرًا كاملاً من الإدخال، بما في ذلك أحرف المسافات البيضاء، في مصفوفة char المحددة. - std::getline(cin, str);
إذا كان لديك حق الوصول إلى المعيار مكتبة، يمكنك استخدام هذه الطريقة لقراءة سطر كامل في كائن سلسلة، مما يوفر المزيد من المرونة. - تنفيذ فئة السلسلة الخاصة بك:
يمكنك تحديد فئة السلسلة الخاصة بك التي تتعامل مع الإدخال والإخراج بشكل أكثر كفاءة.
توصية
النهج الموصى به في الوقت الحاضر هو استخدام مترجمات C الحديثة والمكتبة القياسية. وهذا يوفر معالجة أكثر موثوقية وكفاءة للمدخلات، بما في ذلك القدرة على قراءة سطور كاملة من المدخلات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3