Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多维数组初始化#_C#_Multidimensional Array - Fatal编程技术网

C# 多维数组初始化#

C# 多维数组初始化#,c#,multidimensional-array,C#,Multidimensional Array,我在初始化以下数组时遇到问题 char[,] omar = new char[4, 4]; for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { omar[i, j] = (char)(Console.Read()); } } 它只需要前3行,而不是全部第4行,因此需要任何帮助吗?您正在使用控制台。Read()读取输入的单个字符,但当您点击enter键时,Read

我在初始化以下数组时遇到问题

char[,] omar = new char[4, 4];
for (int i = 0; i < 4; ++i) 
{
     for (int j = 0; j < 4; ++j) 
     {
          omar[i, j] = (char)(Console.Read());
     }
}

它只需要前3行,而不是全部第4行,因此需要任何帮助吗?

您正在使用
控制台。Read()
读取输入的单个字符,但当您点击enter键时,
Read()
将返回以下任一选项:

  • 如果您在类似*nix的平台上,则为单个换行符(
    \n
    ,或十进制10)
  • 如果在Windows上,则为回车符(
    \r
    ,或十进制13)。紧接着的
    Read()
    调用将返回换行符
  • 对代码进行一个小的修改,使其按照预期的方式工作:

    char[,] omar = new char[4, 4];
    for (int i = 0; i < 4; ++i) 
    {
         for (int j = 0; j < 4; ++j) 
         {
              omar[i, j] = (char)(Console.Read());
         }
         Console.Read();
         if (Environment.NewLine.Length > 1)
             Console.Read();
    }
    
    char[,]omar=新字符[4,4];
    对于(int i=0;i<4;++i)
    {
    对于(int j=0;j<4;++j)
    {
    omar[i,j]=(char)(Console.Read());
    }
    Console.Read();
    如果(Environment.NewLine.Length>1)
    Console.Read();
    }
    
    记住,每次按enter键时,这也是一个字符。是的,这就是问题所在。。。非常感谢这很有帮助,非常感谢
    char[,] omar = new char[4, 4];
    for (int i = 0; i < 4; ++i) 
    {
         for (int j = 0; j < 4; ++j) 
         {
              omar[i, j] = (char)(Console.Read());
         }
         Console.Read();
         if (Environment.NewLine.Length > 1)
             Console.Read();
    }