سؤال

خذ ملف C # التالي، أبسط توزيع محتمل لمشكلتي:

using System;
using System.IO;

public static class Test
{
    public static void Main(string[] args)
    {
        string line;
        while ((line = Console.In.ReadLine()) != null)
        {
            Console.Out.WriteLine(line);
        }
    }
}

عندما أقوم ببناء هذا تحت أحادي وأرسله على وحدة التحكم، كل شيء يعمل بشكل جيد إلا أنني لا أستطيع إرسال EOF. الكتابة CTRL-D فقط يضع شخصية غريبة في سطر الأوامر. أعتقد أنني أتحقق من eof بطريقة خاطئة، ولكن Console.In هو TextReader, ، وهذا ليس لديه EndOfFile خاصية. كيف يمكنني اصلاح هذا؟

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

المحلول

أي إصدار من أحادي؟ أنا إصلاح هذه المشكلة في R129444. في 2009-03-16 ... برنامجك يعمل كما هو متوقع عندما أضغط على CTRL-D.

تحديث: لطيف - جيد. اكتشفت أن الإصدارات 2.4.xy لا تملك الإصلاح :-(. سيكون في الإصدار 2.6 القادم ... آسف على ذلك.تحديث 2: تم تفرج Mono-2-4 في 2009-03-13. اشتقت ذلك قبل 3 أيام!

نصائح أخرى

CTRL-D هو نهاية ملف نمط UNIX من الملفات ... لأن أحادية مستمدة من Microsoft Realm هل ربما استخدام Ctrl-Z؟ (ليس لدي تثبيت مونو، لذلك أنا آخذ طلقة في الظلام هنا).

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