Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5142575
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: C/C++

2010-08-19 18:21:15

C#的控制台输出函数是System.Console里面的WriteLine和Write。

输出多个字符串可以直接用“+”连接,比如

int a=10;string b="Hello",double c=222.22;

Console.WriteLine("aaaa"+a.ToString()+" "+b+" "+c.ToString()+"The End");

也可以使用指定格式,

Console.WriteLine("aaaa{0} {1} {2} The End",a,b,c);

效果跟前面是一样的。

WriteLine是控制台输出,ToString则可以用于其它地方,

另外也可以对标准输入输出进行重定向,使ReadLine和WriteLine可以对控件操作:

Process pcmd = new Process();
pcmd.StartInfo.FileName = "cmd";
pcmd.StartInfo.UseShellExecute = false;
pcmd.StartInfo.RedirectStandardInput = true;
pcmd.StartInfo.RedirectStandardOutput = true;
pcmd.StartInfo.RedirectStandardError = true;
pcmd.StartInfo.CreateNoWindow = true;
//string result = null;
pcmd.Start();
pcmd.StandardInput.WriteLine(textBox1.Text);

pcmd.StandardInput.WriteLine("exit");
richTextBox1.Text=pcmd.StandardOutput.ReadToEnd();

ToString函数也可以使用格式。

{}中间的数字是索引,代表列表中参数的序号。

还可以有更高级的用法

格式为{n,w:x}

n为索引,w为宽度,对齐用的,x是格式字符串。

来看个具体的例子:

static void Main(string[] args)
{
    double a = 123.456;
    System.Console.Write("{0}",a.ToString("F0"));
    for (int i = 0; i < 100; i++)
    {
        if (i % 5 == 0) System.Console.WriteLine();
        System.Console.Write("{0,5:D2}", i);
    }
}

System.Console.Write("{0}",a.ToString("F0"));表示把a精度为0的小数输出。

也可以写成System.Console.Write("{0,3:F0}",a);

System.Console.Write("{0,5:D2}", i);表示宽度为5,精度为2,不足补0。

D表示是整数,其它的标准数字格式字符串有:

C    本地货币格式

E    科学记数法(指数)格式

F   定点(小数)格式

G   常规格式

N   数字格式

P   百分数格式

X   十六进制格式

R   往返过程

还有一种方式是使用占位符:

double a = 1.2345;
System.Console.WriteLine("{0:###.000000}", a);

结果为1.234500

“#”号位置上有字符就输出,没有则不输出,0的位置上有字符就输出,没有就填0。

再来看个例子:

decimal m = 168.24m;
decimal n = 45.8m;
System.Console.WriteLine("{0,8:C2}\n{1,8:C2}\n{2,8:C2}", m, n,m-n);

输出结果为

¥168.24
   ¥45.80
¥122.44

前面有一个空格,因为宽度是8,小数点后保留两位小数,不足补0。

它是右对齐的,我们可以换成左对齐:

¥168.24
¥45.80
¥122.44

“¥”符号是自动加上去的,我们这里选择的是货币格式,它会自动选择适当的符号,RMB当然是¥,要修改可以去控制面板里面设置语言和货币。

以上是数字的格式,另外日期和时间格式字符串也是比较常用的。

static void Main(string[] args)
{
    DateTime date1 = new DateTime(2010, 5, 22,19,50,28);        //2010年5月22日19点50分28秒     
    Console.WriteLine(date1.ToString("f",CultureInfo.CreateSpecificCulture("zh-CN")));
}

D       长日期模式                    2010年5月22日

f         完整日期/时间模式(短时间)            2010年5月22日 19:50

F        完整日期/时间模式(长时间)           2010年5月22日 19:50:28

g        常规日期/时间模式(短时间)           2010/5/22 19:50

G      常规日期/时间模式(长时间)           2010/5/22 19:50:28

M或m   月日模式                                     5月22日

t         短时间模式                                    19:50

T       长时间模式                                     19:50:28

u        通用的可排序日期/时间模式           2010-05-22 19:50:28Z

U        通用完整日期/时间模式                  2010年5月22日 11:50:28

Y或y     年月模式                                      2010年5月

还可以自定义格式,

{
    DateTime date1 = new DateTime(2010, 5, 22,19,50,28);                   
    Console.WriteLine(date1.ToString("yyyy年MM月dd日 tt hh:mm:ss.FF",CultureInfo.CreateSpecificCulture("zh-CN")));                 
}

输出为2010年05月22日 下午 07:50:28

还有很多用法,详情可以去查MSDN。

输出为 2010年5月22日 19:50,还有其它的:

d        短日期模式                     2010/5/22

阅读(2222) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~