C#中不提供输入和输出语句,其输入和输出操作是借助于 一些预定义类来实现的。
Console 类提供用于从控制台读取单个字符或整行的方法, 并且该类还可将值类型的数据、字符数组以及对象集自动转换
使用Console类需要在源程序开头使用using指令进行命名空 间system引入,格式如下:
using system;
如果没有引入该命名空间,则需要在程序设计时使用 Console类的完全限定名,应把Console替换为System.Console
Console类支持用户使用标准输入设备如键盘和鼠标向计算 机输入数据,其实现的输入方法有Read、ReadLine、ReadKey
等Read方法
Read方法从标准输入流读取下一个字符。其返回值是输入 流中下一个字符的Unicode编码值,返回值类型是 System.Int32,;如果当前没有更多的字符可供读取,则返回
方法定义为:
public static int Read();
- 在键入输入字符时,Read方法会阻止其返回,只有当用户 按Enter 键时该方法才会终止。
- 按Enter键会在输入内容后面追加一个与平台有关的行终止 序列。
- 对Read 方法的后续调用一次检索输入中的一个字符,检索 完后一个字符后,Read 会再次阻止其返回,并重复上述循 环。
Read方法只有在下列情况下才返回-1: - 同时按键Control 和键Z (Ctrl+Z),此按键组合发出到达文 件尾条件;
- 按发出到达文件尾条件的等效键,例如Windows中的F6功能 键;
- 将输入流重定向到具有实际的文件尾字符的源,例如文本文 件。
- Read方法的用法示例如下:
1. char ch;
2. int x;
3. x = Console.Read();//读取字符,返回字符的Unicode编码值给变量x
4. ch = Convert.ToChar(x);//将Unicode编码转换成对应字符给变量ch
5. Console.WriteLine("Thechar is:{0}",ch);
ReadLine方法
ReadLine方法从标准输入流读取下一行字符,其返回值类型 为System.String;如果没有更多的可用行,则返回null。其方
法定义为:
public static string ReadLine();
- 行被定义为后跟回车符(十六进制0x000d)、换行符(十 六进制0x000a)或Environment.NewLine属性值的字符序列。
- ReadLine方法返回的字符串不包含终止字符。
- 如果在该方法从控制台读取输入时按Ctrl + Z字符,该方法 将返回null。
下面是ReadLine方法的使用示例。
1. string line; line = Console.ReadLine();//从标准输入流读取下一行字符
ReadKey方法
2. ReadKey方法获取用户按下的下一个字符或功能键。返回值 类型为:System.ConsoleKeyInfo,描述ConsoleKey 常数和 对应于按下的控制台键的Unicode字符(如果存在这样的字 符)。
3. ConsoleKeyInfo 对象还以ConsoleModifiers 值的按位组合描述是否在按下该控制台键的同时按下了Shift、Alt 或Ctrl键 中的一个或多个。
ReadKey方法有如下两种重载方式:
1. public static ConsoleKeyInfo ReadKey();//方式1
2. public static ConsoleKeyInfo ReadKey(bool intercept);//方式2
- 方式1中,ReadKey方法获取用户按下的键后显示在控制台 窗口中。
1. ConsoleKeyInfo cki; cki = Console.ReadKey();//从键盘读取用户按下的下一个字符或功能键
Console.Write(" -- You pressed ");
/*根据ConsoleModifiers值的按位组合描述是否在按下该控制台键的同时 按下了 Shift、Alt 或 Ctrl 修改键中的一个或多个*/
if ((cki.Modifiers & ConsoleModifiers.Alt) != 0)
Console.Write("ALT+");
if ((cki.Modifiers & ConsoleModifiers.Shift) != 0)
Console.Write("SHIFT+");
if ((cki.Modifiers & ConsoleModifiers.Control) != 0)
Console.Write("CTL+");
Console.WriteLine(cki.Key.ToString());//输出按下的字符
方式2中,ReadKey方法获取用户按下的键后可以选择显示 在控制台窗口中。
参数intercept值为true时,按下的键将被截获,不会显示在 控制台窗口中;参数值为false时,将在控制台窗口中显示按下
的键。Console类支持计算机向标准输出设备如显示器输出数据, 其实现的输入方法有Write、WriteLine。
Write方法
- Console类的Write方法有18种重载定义,分别用以实现将布 尔型、数值型、字符型、字符串型、对象型等信息写入标准输 出流中。
方式1:Write(输出项);//将指定的输出项信息写入标准输出流。
方式2:Write(格式控制,输出项列表);//将各输出项按指定的格式写入标准输出流。
Write方法的使用示例如下:
char c = 'c';
int d = 10;
Console.Write(true);//使用重载方式1输出bool型值
Console.Write(c);//使用重载方式2输出字符
Console.Write(d);//使用重载方式6输出int型值
Console.Write("Hello world!");//输出重载方式10输出字符串
Console.Write(“{ 0:x}”,d);//将d值按照十六进制形式输出,输出:a
WriteLine方法
Console类的WriteLine方法用以将布尔型、数值型、字符型、 字符串型、对象型等信息写入标准输出流中,它与Write方法 的不同就是在输出信息后附加当前行终止符,即输出当前信息 后自动换行。
Write方法的每种重载都对应有WriteLine方法的重载定义。
WriteLine方法还可用以只把当前行终止符写入标准输出 流,即输出一个空行。
WriteLine方法的调用形式如下:
方式1: WriteLine(输出项);//将指定输出项信息附加当前行终止符写入标准输出流。
方式2: WriteLine(格式控制,输出项列表);//将各输出项按指定的格式写入标准输出流并附加当前行终止符。
方式3:WriteLine();//输出空行
WriteLine方法的使用示例。
char c = 'c';
int d = 10;
Console.WriteLine(true);//输出bool型值后回车
Console.WriteLine(c);//输出字符后回车换行
Console.WriteLine(d);//输出int型值后回车换行
Console.WriteLine("Hello world!");//输出字符串后回车换行
Console.WriteLine("{0:x}",d);//将d值按十六进制输出后回车换行
Console.WriteLine();//输出一个空行