一、输入输出
我们前面就用到过Console类的WriteLine方法。
Console类支持用户使用标准输入设备如键盘和鼠标向计算机输入数据,其实现的输入方法有Read、ReadLine、ReadKey等。
Console类支持用户使用标准输出设备如显示器向计算机输出数据,其实现的输入方法有Write、WriteLine。
1.1 输入方法
1.1.1 Read方法
方法说明:从标准输入流读取下一个字符,返回值为int类型。
方法定义:
public static int Read();
方法使用:在用户输入字符时,Read方法会阻止其返回,只有当用户输入Enter键时才会返回。
注:当用户按下Ctrl+Z组合键或者触发到达文件末尾的按键时 ,Read方法在下列情况会 ==返回 -1 ==。
int x = Console.Read();
Console.WriteLine("您的输入是:" + x);
1.1.2 ReadLine方法
方法说明:从标准输入流读取下一行字符,返回值为string类型。
方法定义:
public static string ReadLine();
方法使用:行被定义为用户输入后输入回车符(十六进制0x000d)或者换行符(十六进制 0x000a),此方法返回时,只会返回换行符号之前的用户输入。
注:当用户按下Ctrl+Z组合键,此方法返回null。
string inputStr = Console.ReadLine();
Console.WriteLine("您的输入是:" + inputStr);
1.1.3 ReadKey方法
方法说明:此方法可获取用户按下的下一个字符或功能键。返回值类型为System.ConsoleKeyInfo
方法定义:ReadKey有两种重载方式
方式一:获取用户按键后显示在控制台窗口中。
public static ConsoleKeyInfo ReadKey();
方式二:参数为true时,按键不会显示在控制台,若参数为false则显示(效果和方式1一样)。
public static ConsoleKeyInfo ReadKey(bool intercept);
ConsoleKeyInfo cki = Console.ReadKey();
if (cki.Key == ConsoleKey.A)
{
Console.WriteLine("用户按下了A键");
}
组合键的使用:
当用户按下了Shift、Alt 或Ctrl 修改键中的一个或多个时的校验方法:
ConsoleKeyInfo cki = Console.ReadKey();
if((cki.Modifiers & ConsoleModifiers.Alt) != 0)
{
Console.WriteLine("用户按下了Alt + 其他按键");
}
if (cki.Key == ConsoleKey.A && (cki.Modifiers & ConsoleModifiers.Control) != 0)
{
Console.WriteLine("用户按下了Ctrl + A键");
}
1.2 输出方法
1.2.1 Write 方法
Write方法有很多的重载定义,分别用以实现布尔型,数值型,字符型,字符串型,对象型等信息写入标准流。
// 输出int类型值
Console.Write(1); // 1
// 输出bool型值
Console.Write(true); // True
// 输出char类型值
Console.Write('C'); // C
// 输出字符串类型值
Console.Write("小灰灰"); // 小灰灰
// 将数字10按照十六进制形式输出
Console.Write("{0:x}", 10); // a
1.2.2 WriteLine方法
WriteLine方法和Write方法的区别在于输出时,会在输出信息后面附加换行符,即输出信息会自动换行。
对于Write的方法的每种重载都有对应的WriteLine方法实现。
// 输出int类型值
Console.WriteLine(1); // 1
// 输出bool型值
Console.WriteLine(true); // true
// 输出char类型值
Console.WriteLine('C'); // C
// 输出字符串类型值
Console.WriteLine("小灰灰"); // 小灰灰
// 将数字10按照十六进制形式输出
Console.WriteLine("{0:x}", 10); // a