मैं कंसोल के साथ दूसरा वर्ण नहीं पढ़ सकता। पढ़ें() विधि। मेरा मतलब है कि मुझे कीबोर्ड से दूसरे अक्षर को पढ़ने का कोई संकेत नहीं मिलता है। कृपया कोई मदद? साथ ही, मैं समझता हूं कि चरित्र डिफ़ॉल्ट रूप से एक int है लेकिन इनपुट से पढ़ते समय हमें इसे अभी भी चार में परिवर्तित करने की आवश्यकता है, क्या यह सही है? नीचे दिया गया कोड पहले चार को पढ़ता है लेकिन दूसरे के साथ समाप्त होता है।

public static void Main()
    {
        Console.WriteLine("The First Character?:");
        char firstChar=Convert.ToChar(Console.Read());

        Console.WriteLine("The Second Character?:");
        char secondChar=Convert.ToChar(Console.Read());
    }
3
Jasmine Appelblad 2 मार्च 2011, 05:06

4 जवाब

सबसे बढ़िया उत्तर

कृपया Console.Read देखें। विशेष रूप से, यह हिस्सा:

जब आप इनपुट कैरेक्टर टाइप करते हैं तो रीड मेथड इसके रिटर्न को ब्लॉक कर देता है; जब आप एंटर कुंजी दबाते हैं तो यह समाप्त हो जाता है। एंटर दबाने से आपके इनपुट में एक प्लेटफॉर्म-निर्भर लाइन टर्मिनेशन सीक्वेंस जुड़ जाता है (उदाहरण के लिए, विंडोज कैरिज रिटर्न-लाइनफीड सीक्वेंस जोड़ता है)। पठन विधि के बाद के कॉल आपके इनपुट को एक बार में एक वर्ण पुनर्प्राप्त करते हैं। अंतिम वर्ण प्राप्त होने के बाद, रीड अपनी वापसी को फिर से अवरुद्ध करता है और चक्र दोहराता है।

4
dtb 2 मार्च 2011, 05:12

ऐसा लगता है कि Console.ReadKey() वही है जो आप वास्तव में चाहते हैं।

8
Mark Sowul 2 मार्च 2011, 05:12

शायद यह कोड आप जो खोज रहे हैं उसके करीब है ...

public static void Main()
{
        Console.WriteLine("The First Character?:");
        char firstChar = Convert.ToChar(Console.ReadKey().KeyChar);
        Console.WriteLine();
        Console.WriteLine("The Second Character?:");
        char secondChar = Convert.ToChar(Console.ReadKey().KeyChar);
}
3
carmbrester 2 मार्च 2011, 05:17

आपका दूसरा Console.Read() कैरिज रिटर्न का उपभोग कर रहा है जो पहले पठन को समाप्त कर रहा है।

Console.ReadKey उपयोग करने के लिए थोड़ा मित्रवत है, क्योंकि इसके लिए टर्मिनेटिंग कैरिज रिटर्न की आवश्यकता नहीं होती है। यदि आप Console.Read का उपयोग करना जारी रखना चाहते हैं, तो आप दूसरे संकेत से पहले कैरिज रिटर्न का उपभोग और त्याग करने का प्रयास कर सकते हैं, जैसे:

public static void Main()
{
    Console.WriteLine("The First Character?:");
    char firstChar = Convert.ToChar(Console.Read());

    Console.Read(); // consume carriage return

    Console.WriteLine("The Second Character?:");
    char secondChar = Convert.ToChar(Console.Read());

    Console.WriteLine(secondChar);
}
2
Michael Petrotta 2 मार्च 2011, 05:13