2017-07-17 4 views
-1

Ich habe ein Problem Initialisieren der folgenden Arraymehrdimensionales Array Initialisierung C#

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()); 
    } 
} 

bei dem Versuch, die Eingabe-Eingang wie dieses

.... 
#### 
#### 
##.. 

Es braucht nur die ersten 3 Zeilen nicht alle vierten, so dass jede Hilfe bitte ?

+2

Denken Sie daran, dass jedes Mal wenn Sie die Eingabetaste drücken, das ist ein zu Charakter. –

+0

ja das war das Problem ... Vielen Dank –

Antwort

0

Sie Console.Read() verwenden einen individuellen Charakter zu lesen eingegeben, aber wenn Sie die Eingabetaste drücken, Read() kehrt entweder:

  1. Ein einzelner Zeilenvorschub-Zeichen (\n oder dezimal 10), wenn Sie auf eine sind * nixartige Plattform;
  2. Ein Carriage-Return-Zeichen (\r oder Dezimal 13), wenn Sie unter Windows sind. Der direkt nachfolgende Aufruf Read() liefert dann ein Zeilenvorschubzeichen.

Eine kleine Änderung den Code, den Sie bekommt zu bekommen hat wie erwartet zu arbeiten:

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(); 
} 
+0

Ja das war so hilfreich, vielen Dank –