控制台(console)是电脑的最基本交互接口,通常包括键盘(keyboard)和屏幕(screen)。键盘通常为标准输入设备,而屏幕为标准输出设备。在程序中实现数据的输入输出是每个程序员必须掌握的编程技术。
前言
C# 通过 Console 类实现从控制台读取字符和向控制台写入字符。Console 类包含在 system 命名空间中。
数据的输入输出方式有两种方式,一种是控制台输入输出,一种是文件输入输出。C#的输入/输出系统非常庞大,有控制台输入/输出和文件输出两部分,这里主要介绍控制台输入/输出。
一、控制台输入输出方式
向控制台输出:
•
Console.WriteLine()
方法
——
输出后
换行
•
Console.Write()
方法
——
输出后
不换行
从控制台读入:
•
Console.ReadLine();
•
返回值为
string
类型
二、控制台输出方式
1、Console.WriteLine()方法
WriteLine()方法的作用是将信息输出到控制台,一般有三种格式:
public static void Writeline();//换行,只输出一个空行
public static void Writeline(arg0);//输出一个值
public static void WriteLine(format, arg0, arg1,…); //使用指定的格式信息输出一个值。
其中:
Format 是
格式字符串 。
arg0
要使用
format
写入的第一个对象。
arg1
要使用
format
写入的第二个对象。
格式字符串的格式:
{N[,M][:格式化字符串]}
其中的参数含义如下:1. 花括号(“{}”)用来在输出字符串中插入变量。2. N表示输出变量的序号。
从 0 开始,如当 N 为 0 时,则对应输出第 1 个变量的值,当 N 为 4 时,则对应输出第 5 个变量,依次类推。3. [,M][:格式化字符串]是可选项。其中 M 表示输出的变量所占的字符个数,当这个变量的值为负数时,输出的变量按照左对齐方式排列;如果这个变量的值为正数的时候,输出的变量按照右对齐方式排列。
4. [:格式化字符串]也是可选项,指定输出字符串的格式。因为在向控制台输出时,常常需要指定输出字符串的格式。通过使用数字格式化字符串,可以使用 Xn 的形式来指定输出字符串的格式,其中 X 指定数字的格式,n 指定数字的精度,即有效数字的位数。这里提供 8 个常用的格式字符。
字符串 说 明C 本地货币格式D 十进制格式,把整数转换为以10为基数的数,如果给定一个精度说明符,就加上前导0E 科学计数法(指数)格式。精度说明符设置小数位数(默认为6)。 格式字符串的大小写(" e " 或 "E")确定指数符号的大小写F 固定点格式,精度说明符设置小数位数,可以为0G 普通格式,使用E 或 F格式取决于哪种格式较简单N 数字格式,用逗号表示千分符,例如32,767.44P 百分数格式,将数字乘以 100 并将其转换为表示百分比的字符串X 16进制格式,精度说明符用于加上前导0
(1)货币格式
货币格式 C 或者 c 的作用是将数据转换成货币格式,在格式字符 C 或者 c 后面的数字表示转换后的货币格式数据的小数位数。例如:
double k=1234.789;Console.WriteLine("{0,8:c}", k);//结果是¥1234Console.WriteLine("{0,10:c4}",k);//结果是¥1234.7890
将指定的数据(后跟当前行终止符)写入标准输出流
(2) 整数数据类型格式
格式字符 D 或者 d 的作用是将数据转换成整数类型格式,在格式字符 D 或者 d 后面的数字表示转换后的整数类型数据的位数。这个数字通常是正数,如果这个数字大于整数数据的位数,则格式数据将在首位前以 0 补齐,如果这个数字小于整数数据的位数,则显示所有的整数位数。例如:
intk=1234;Console.WriteLine("{0:D}", k);//结果是 1234Console.WriteLine("{0:d3}", k); //结果是 1234Console.WriteLine("{0:d5}", k); //结果是 01234
(3) 科学计数法格式
格式字符 E 或者 e 的作用是将数据转换成科学计数法格式,在格式字符 E 或者 e 后面的数字表示转换后的科学计数法格式数据的小数位数,如果省略了这个数字,则显示 7 位有效数字。例如:
intk=123000;double f=1234.5578;Console.WriteLine("{0:E}", k);//结果是 1.230000E+005Console.WriteLine("{0:e}", k);//结果是 1.230000e+005Console.WriteLine("{0:E}", f);//结果是 1.234558E+003Console.WriteLine("{0:e}", f);//结果是 1.234558e+003Console.WriteLine("{0:e4}", k);//结果是 1.2300e+005Console.WriteLine("{0:e4}", f);//结果是 1.2346e+005
(4)浮点数据类型格式
格式字符 F 或者 f 的作用是将数据转换成浮点数据类型格式,在格式字符 F 或者 f 后面的数字表示转换后的浮点数据的小数位数,其默认值是 2,如果所指定的小数位数大于数据的小数位数,则在数据的末尾以 0 补充。例如:
int a=123000;double b=1234.5578;Console.WriteLine("{0,-8:f}",a);//结果是 123000.00Console.WriteLine("{0:f}",b);//结果是 1234.56Console.WriteLine("{0,-8:f4}",a);//结果是 123000.0000Console.WriteLine("{0:f3}",b);//结果是 1234.558Console.WriteLine("{0:f6}",b);//结果是 1234.557800
(5)通用格式
格式字符 G 或者 g 的作用是将数据转换成通用格式,依据系统要求转换后的格式字符串
最短的原则,通用格式可以使用科学计数法来表示,也可以使用浮点数据类型的格式来表示。 例如:
double k=1234.789;int j=123456;Console.WriteLine("{0:g}", j);//结果是 123456Console.WriteLine("{0:g}", k);//结果是 1234.789Console.WriteLine("{0:g4}", k);//结果是 1235Console.WriteLine("{0:g4}", j);//结果是 1.235e+05
(6)数字格式
格式字符 N 或者 n 的作用是
将数字转换为"-d,ddd,ddd.ddd…"形式的字符串, 其中"-"表示负数符号(如果需要),"d"表示数字 (0-9),","表示组分隔符,"." 表示小数点符号,其特点是数据的整数部分以每三位用”,”进行分隔,在格式字符 N 或 者 n 后面的数字表示转换后的格式数据的小数位数,其默认值是 2 例如:
double k=211122.12345;int j=1234567;Console.WriteLine("{0:N}",k);//结果是 211,122.12Console.WriteLine("{0:n}", j);//结果是 1,234,567.00Console.WriteLine("{0:n4}", k); //结果是 211,122.1235Console.WriteLine("{0:n4}", j); //结果是 1,234,567.0000
(7)十六进制数据格式
格式字符 X 或者 x 的作用是将数据转换成十六进制数据格式,在格式字符 X 或者 x 后面的数字表示转换后的十六进制数据的数据位数。例如:
int j=123456;Console.WriteLine("{0:x}",j);//结果是 1e240Console.WriteLine("{0:x6}",j);//结果是 01e240
(8)百分数格式
将数字乘以 100 并将其转换为表示百分比的字符串,精度说明符指示所需的小数位数。
double number = .2468013;Console.WriteLine(number.ToString("P1" ); // 结果为 24.7 %Console.WriteLine(number.ToString("P2"));// 结果为 24.68 %Console.WriteLine("{0:P3}", number);//结果是 24.680%
2、Console.Write()方法
Write()方法和 WriteLine()方法类似,都是将信息输出到控制台,但是输出到屏幕后并不会产生一个新行。
在 Write()方法中,也可以采用“{N[,M][:格式化字符串]}”的形式来格式化输出字符串,其中的参数含义如同 WriteLine()方法中所述。
三、控制台输入方式
1、Console.ReadLine()方法
读取一行并返回
字符串
(
string
)
类型
string name =Console.ReadLine( );
读取整数
int .Parse (Console.ReadLine());//表示将字符串转换为整数
注意:
ReadLine()方法用来从控制台读取一行数据,一次读取一行字符的输入,并且直到用户按下 Enter 键它才会返回。
但是,ReadLine()方法并不接收回车键。如果 ReadLine()方法没有接收到任何输入,或者接收了无效的输入,那么 ReadLine()方法将返回 null。
2、Console.Read()方法
Read()方法的作用是从控制台的输入流读取下一个
字符
。其格式为:
Console.Read( );
注意:
Read()方法一次只能从输入流读取一个字符,并且直到用户按回车键才会返回。当这个方法返回时,如果输入流中包含有效的输入,则它返回一个表示输入字符的整数;如果输入流中没有数据,则返回-1。