C#Console.ReadLine()⽅法的使⽤以及利⽤其返回值null终⽌输⼊
官⽅解释
ReadLine⽅法以同步⽅式执⾏。 即,被阻⽌,直⾄读取⾏或按下 Ctrl + Z 键盘组合。 In属性返回TextReader对象,它表⽰标准输⼊的流并具有这两个同步 TextReader.ReadLine⽅法和异步TextReader.ReadLineAsync⽅法。 但是,当⽤作控制台的标准输⼊流,TextReader.ReadLineAsync同步⽽不是以异步⽅式执⾏,并返回Task仅完成读取的操作后。
如果此⽅法将引发 OutOfMemoryException异常,⽽在基础读取器的位置 Stream对象⾼级的字符的⽅法是可以读取,但已读⼊内部的字符数ReadLine缓冲区将被丢弃。 由于不能更改流中读取器的位置,因此已读取的字符是不可恢复,并可以访问仅通过重新初始化TextReader。 如果流中的初始位置是未知或流不⽀持查,基础 Stream还需要重新初始化。 若要避免这种情况并⽣成可靠的代码,应使⽤ KeyAvailable属性和ReadKey只读⽅法和应⽤商店中预先分配的缓冲区的字符。
如果该⽅法是从控制台读取输⼊时按 Ctrl + Z 字符,该⽅法返回 null。 这使⽤户以防⽌进⼀步的键盘输⼊时ReadLine在循环中调⽤⽅法。下⾯的⽰例阐释了这种情况。
官⽅⽰例
using System;
public class Example
{
public static void Main()write的返回值
{
string line;
Console.WriteLine("Enter one or more lines of text (press CTRL+Z to exit):");
Console.WriteLine();
do{
Console.Write("  ");
line = Console.ReadLine();
if(line != null)
Console.WriteLine("      "+ line);
}while(line != null);
}
}
// The following displays possible output from this example:
//      Enter one or more lines of text (press CTRL+Z to exit):
//
//          This is line #1.
//            This is line #1.
//          This is line #2
/
/            This is line #2
//          ^Z
//
//      >
我的代码 C#
本程序⽤法:输⼊10个值,以回车分隔。将逐⾏输出int型的你刚输⼊的数字
输⼊⽰例
1
22
33
44
55
66
77
88
99
100输出⽰例
1
22
33
44
55
66
77
88
99
100代码
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
class Program
{
static void Main(string[] args)
{
输⼊⼀⾏
//string value = Console.ReadLine();
⽤标点分开
//string[] vals = value.Split(',');
输出并转化为int数组
//Console.WriteLine("分开展⽰各值");
//int[] num = new int[vals.Length];
//for (int i = 0; i < vals.Length; i++)
/
/{
//    num[i] = int.Parse(vals[i]);
//    Console.WriteLine(string.Format("第{0}个:{1}", i + 1, num[i]));
//}
int[] a = new int[1000];
int i =0;
string str ="";
int num =0;
//输⼊
Console.WriteLine("输⼊10个值,以回车分隔");
while(str != null)
{
str = Console.ReadLine();
num =int.Parse(str);
a[i]= num;
i++;
if(i ==10)break;
}
//输出
int j;
for(j =0; j < i; j++)
{
Console.WriteLine(a[j]);
}
}
}
}
可看到变量的存储⽅式

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。