Nutzereingaben einlesen und speichern in C#?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Der Aufruf

Console.ReadLine());

liefert dir eine Zeichenreihe. In

  numbers.Add(Console.ReadLine());

versuchst du, diese Zeichenreihe in ein Array einzudragen, dass nur int-Werte aufnehmen kann. Das geht natürlich nicht. Du musst die erhaltene Zeichenreihe zunächst in eine Ganzzahl umwandeln.

Versuche bitte mal folgendes:

 numbers.Add(Convert.ToInt32(Console.ReadLine())); 
Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler
beim untersten Console.readLine gibt mir der Compiler auch ne Fehlermeldung.

Lass mich raten.... da wird bemängelt, dass du auf einen Index in deiner Liste zugreifen willst, den es gar nicht gibt.

 for(int i = 0; i < zahlen1; ++i)

Das ++i inkrementiert dir i BEVOR es genutzt wird. Der erste Wert ist also nicht 0 sondern 1. Entsprechend ist der letzte Wert nicht i sondern i+1

Schau dir den Unterschied zwischen ++i und i++ mal genau an.

ewzuhrabzuhifn 
Fragesteller
 30.10.2022, 10:45

Stimmt, jetzt wo du es sagts fällts mir auch auf, dankeschön

0
regex9  30.10.2022, 10:55
@ewzuhrabzuhifn

Die obige Antwort ist falsch.

Die Zeile mit ReadLine wird scheitern, da ein String nicht implizit in einen Integer gecastet werden kann.

Das Preinkrement in der Schleife ist richtig. Dieser Ausdruck wird stets nach einem Schleifenlauf ausgeführt.

1