I am trying to read some values in c# from console and then processing them. However i am stuck at a error.
The input from console is:
Name:ABCD
School:Xyz
Marks:80
//here the user enters a new line before entering new data again
Name:AB
School:Xyz
Marks:90
//new line again
Name:AB
School:Xyz
Marks:90
and so on. I do not know before hand the number of console inputs...How can i detect that user has stopped entering & store the input.
I tried using
string line;
while((line=Console.ReadLine())!=null)
{
//but here it seems to be an infinite loop
}
Any suggestions
Your code looks for "end of console input" which is "Ctrl+Z" as covered in Console.ReadLine:
If the Ctrl+Z character is pressed when the method is reading input from the console, the method returns null. This enables the user to prevent further keyboard input when the ReadLine method is called in a loop. The following example illustrates this scenario.
If you are looking for empty string as completion use String.IsNullOrWhiteSpace.
string line;
while(!String.IsNullOrWhiteSpace(line=Console.ReadLine()))
{
//but here it seems to be an infinite loop
}
There's no way for you to know implicitly that the user has finished entering all their data. You would need some explicit entry from the user to tell you that no more data was coming.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With