在循环中读取字符

Mir*_*rod 1 c# char

我试图在循环中读取char,但我不知道它为什么会出错.这是我的代码:

    int sizeOfOurArray;
    string resultString;
    char buffer;
    resultString = "";


    Console.WriteLine("??????? ?????????? ????????? ???????: ");
    sizeOfOurArray = int.Parse(Console.ReadLine());

    char[] ourArray = new char[sizeOfOurArray];

    for (int i = 0; i < ourArray.Length; i++)
    {
        Console.WriteLine("??????? ???????? ???????? ??? ??????? {0}: ", i);
        buffer = (char)Console.Read();
        resultString += buffer.ToString() + " ";
    }

    Console.WriteLine(resultString);
    Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

结果是:http://xmages.net/storage/10/1/0/a/6/upload/27c2a69a.png

PS感谢您的回答,这真的很有帮助!

Jon*_*eet 5

问题是Console.Read只有当用户点击返回时才会返回任何内容 - 此时它将返回(在多次调用中)每个字符,包括回车符和换行符.

您可以一次读取一行,然后取第一个字符:

string line = Console.ReadLine();
// TODO: Handle the user just hitting return...
char buffer = line[0];
Run Code Online (Sandbox Code Playgroud)

(请注意,我个人使用StringBuilder而不是重复连接,但这是另一回事.)