频道栏目
读书频道 > 软件开发 > C# > C#高级编程(第8版)
2.10 控制台I/O
2013-10-25 15:32:01     我来说两句
收藏   我要投稿

本文所属图书 > C#高级编程(第8版)

《C 高级编程(第8版)》是C 2012和 NET 4 5高级技术的终极资源,旨在帮助读者更新、提高用C 2012和 NET 4 5编写Windows应用程序、Web应用程序、Windows 8样式应用程序的技巧。本书的顶级作者专家团队首先介  立即去当当网订购

现在,读者应基本熟悉了C#的数据类型以及控制线程如何执行操作这些数据类型的程序。本章还要使用Console类的几个静态方法来读写数据,这些方法在编写基本的C#程序时非常有效,下面就详细介绍它们。

要从控制台窗口中读取一行文本,可以使用Console.ReadLine()方法,它会从控制台窗口中读取一个输入流(在用户按回车键时停止),并返回输入的字符串。写入控制台也有两个对应的方法,前面已经使用过它们:

Console. Write()方法将指定的值写入控制台窗口。

Console.WriteLine()方法类似,但在输出结果的最后添加一个换行符。

所有预定义类型(包括object)都有这些方法的各种形式(重载),所以在大多数情况下,在显示值之前不必把它们转换为字符串。

例如,下面的代码允许用户输入一行文本,并显示该文本:
string s = Console.ReadLine();
Console.WriteLine(s);

Console.WriteLine()还允许用与C的printf()函数类似的方式显示格式化的输出结果。要以这种方式使用WriteLine(),应传入许多参数。第一个参数是花括号中包含标记的字符串,在这个花括号中,要把后续参数插入到文本中。每个标记都包含一个基于0的索引,表示列表中参数的序号。例如,{0}表示列表中的第一个参数,所以下面的代码:
int i = 10;
int j = 20;
Console.WriteLine("{0} plus {1} equals {2}", i, j, i + j);

会显示:
10 plus 20 equals 30

也可以为值指定宽度,调整文本在该宽度中的位置,正值表示右对齐,负值表示左对齐。为此可以使用格式{n,w},其中n是参数索引,w是宽度值。
int i = 940;
int j = 73;
Console.WriteLine(" {0,4}\n+{1,4}\n — — \n {2,4}", i, j, i + j);

结果如下:
940
+   73
— —
1013

最后,还可以添加一个格式字符串以及一个可选的精度值。这里没有列出格式字符串的完整列表,因为如第9章所述,我们可以定义自己的格式字符串。但用于预定义类型的主要格式字符串如表2-9所示。

表2-9

字 符 串 说    明
C 本地货币格式
D 十进制格式,把整数转换为以10为基数的数,如果给定一个精度说明符,就加上前导0
E 科学计数法(指数)格式。精度说明符设置小数位数(默认为6)。格式字符串的大小写(e或E)确定指数符号的大小写
F 固定点格式,精度说明符设置小数位数,可以为0
G 普通格式,使用E 或 F格式取决于哪种格式较简单
N 数字格式,用逗号表示千分符,例如32 767.44
P 百分数格式
X 十六进制格式,精度说明符用于加上前导0
 

注意除e/E之外,格式字符串都不需要考虑大小写。

如果要使用格式字符串,应把它放在给出参数个数和字段宽度的标记后面,并用一个冒号把它们分隔开。例如,要把decimal值格式化为货币格式,且使用计算机上的地区设置,其精度为两位小数,则使用C2:
decimal i = 940.23m;
decimal j = 73.7m;
Console.WriteLine(" {0,9:C2}\n+{1,9:C2}\n — — — — -\n {2,9:C2}", i, j, i + j);

在美国,其结果是:
$940.23
+     $73.70
— — — — -
$1,013.93

最后一个技巧是,可以使用占位符来代替这些格式字符串,例如:
double d = 0.234;
Console.WriteLine("{0:#.00}", d);

其结果为.23,因为如果在符号(#)的位置上没有字符,就会忽略该符号(#),如果在0的位置上有一个字符,就用这个字符代替0,否则就显示0。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.9 有关编译C#文件的更多内容
下一篇:2.11.1 源文件中的内部注释
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站