
1.5 控制台应用程序的输入与输出

因为C#的输入和输出函数都包含在System这个类里面,所以在使用输入和输出函数之前必须声明“using System;”。
1. 控制台输出
Console.Write()和Console.WriteLine()都是System.Console提供的方法,两者主要用来将输出流由指定的输出装置(默认为屏幕)显示出来。
两者间的差异在于Console.WriteLine()方法是将要输出的字符串与换行控制字符一起输出,当次语句执行完毕时,光标会移到目前输出字符串的下一行;至于Console.Write()方法,光标会停在输出字符串的最后一个字符后,不会移动到下一行。
(1)Console.WriteLine()的括号里有无参数均可,而Console.Write()的括号里必须至少有一个参数。
例如:

(2)使用索引输出,索引号必须从0开始不间断地顺延。
例如:

其中,索引号{0}表示第一项,{1}表示第二项,以此类推。
(3)只能输出object的数组,其他的数组不可以。
例如:

(4)输出方法可以指定数组元素的位置。
例如:

2. 控制台输入
在C#控制台程序中提供了两种方法让用户输入所需数据,它们是由Console类提供的方法。

要读取单个字符,则使用ReadKey()方法。该方法在读取到一个字符后,则等待用户按下任意键,然后将它返回到string类型的对象中。
要读取单个字符,则使用Read()方法,它等待用户按一个键,然后返回结果。字符作为int类型的值返回,所以要显示字符就必须转换为char类型。
要读取一串字符,则使用ReadLine()方法。该方法一直读取字符,直到用户按下回车键,然后将它们返回到string类型的对象中。
【例1-1】编写程序,实现代码输入输出功能,先在控制台上输出提示信息,提示用户输入;并用两种不同方式显示输出的信息。按任意键结束程序。
(1)在Visual Studio 2017中,新建名称为“Project”的文件。
(2)在代码编辑区域输入以下代码。

【程序分析】本例演示了控制台应用程序的输入与输出操作。在代码中,首先用Console.ReadLine()获取到字符串“书山有路勤为径”,再用Console.Read()获取到字符串“学海无涯苦作舟”的是ASCII码。
在Visual Studio 2017中的运行结果如图1-30所示。

图1-30 控制台的输入与输出