قراءة space character في لغة C


التعليقات

getchar يمكنها القيام بهذا، لكنها تسبب مشاكل عند استعمالها داخل الحلقات، حيث تقرأ للمرة الأولى فقط لكن لا تقرأ في المرة الثانية، تقرأ في الثالثة و لا تقرأ في الرابعة.

آسف لم أفهم مشكلتك هنا، هل يمكنك توضيح المشكلة أكثر؟

هذه ليست مشكلة بل شيء طبيعي لأنك ضغط \n لإدخال المدخلات إلى البرنامج (في الكثير من تطبيقات getchar، أو الطرفيات يحصل هذا، تحتاج إلى ضغط Enter (إدخال \n) لإدخال المدخلات إلى البرنامج)، كل ما ستفعله هو التأكد من الحرف هل هو حرف المسافة أم لا، هذه الشيفرة تعمل في ويندوز (مكتبة msvc مترجم MSVC 2015 لم أجربها على GCC أو مع مكتبة لينكس التشغيلة):

while ((c = getchar()) != EOF) {
    if (c == ' ') {
        puts("space");
    }
}

إذا لم تعمل فلا يمكنك القيام بغير هذا، لأن الـInput لم يدخل البرنامج أصلًا، وإذا كتبت برنامجًا آخرًا يدخل المدخلات إليه من الطرفية سيعمل بدون مشاكل، جرب تغيير الطرفية، أظن أني كنت أستخدم واحدة مبنية على لينكس تدخل الـInput بمجرد كتابة حرف.

جرب البحث عن VK_SPACE


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع