C#控制臺輸出有兩種方法:Write()和WriteLine(),它們都是命名空間System中Console類的方法,且都具有多達18種或以上的重載形式,能夠直接輸出C#提供的所有基本數(shù)據(jù)類型。其中,Write()方法輸出一個或多個值后不換行,即其后沒有新行符;而WriteLine()同樣是輸出一個或多個值,但輸出完后換行,即其后有一個新行符。
為了控制輸出內(nèi)容或文本的輸出格式,這兩種方法提供了較豐富的格式控制方法。
基本數(shù)據(jù)類型的簡單輸出形式為:
Console.Write("格式串",參數(shù)表);
Console.WriteLine("格式串",參數(shù)表);
下面是一個完整的例子:
using System;
class Class1
{
static void Main(string[] args)
{
short shValue = 23;
int iValue = 7;
float fValue = 25.67f;
double dValue = 11.23;
char cValue = 'f';
Console.Write("shValue={0} ",shValue);
Console.WriteLine(); //沒有參數(shù),則只輸出一個換行符,即光標移到下已行進行輸出
Console.WriteLine("iValue={0},fValue={1}",iValue,fValue);
Console.Write("dValue={0} ",dValue);
Console.WriteLine("cValue={0}",cValue);
}
}
程序中,{0}和{1}分別代表后面的參數(shù),0為第一個參數(shù),1為第二個,以此類推。
運行結(jié)果如下:
其形式為:
Console.WriteLine(“格式”,對象1,對象2);
如:
{0,-8} 輸出第一個參數(shù),且值占8個字符寬度,且為左對齊
{1,8} 輸出第一個參數(shù),且值占8個字符寬度,且為右對齊
{1:D7} 作為整數(shù)輸出第二個參數(shù),域?qū)挒?,用0補齊
{0:E4} 輸出以指數(shù)表示,且具有4位小數(shù)
格式字符 | 說明 | 注釋 | 示例 | 示例輸出 |
---|---|---|---|---|
C | 區(qū)域指定的貨幣格式 | Console.Write(“{0:C}”,3.1); Console.Write(“{0:C}”,-3.1); |
$3.1 ($3.1) |
|
D | 整數(shù),用任意的0填充 | 若給定精度指定符,如{0:D5},輸出將以前導(dǎo)0填充 | Console.Wirte(“{0:D5}”,31); | 00031 |
E | 科學表示 | 精度指定符設(shè)置小數(shù)位數(shù),默認為6位,在小數(shù)點前面總是1位數(shù) | Console.Write(“{0:E}”,310000); | 3.100000E+003 |
F | 定點表示 | 精度指定符控制小數(shù)位數(shù),可接受0 | Console.Write(“{0:F2}”,31); Console.Write(“{0:F0}”,31); |
31.00 31 |
G | 普通表示 | 使用E或F格式取決于哪一種是最簡捷的 | ConsoleWrite(“{0:G}”,3.1); | 3.1 |
N | 數(shù)字 | 產(chǎn)生帶有嵌入逗號的值,如3,100,000.00 | Console.Write(“{0:N}”,3100000); | 3,100,000.00 |
X | 十六進制數(shù) | 精度指定符可以用于前導(dǎo)填充0 | Console.Write(“{0:X}”,230); Console.Write(“{0:X}”,0xffff); |
FA FFFF |
如果我想顯示一個分數(shù)格式的數(shù)字該怎么辦呢?C#還提供了一些特殊格式化的輸出形式:
說明符 | 說明 |
---|---|
0 | 零占位符,若可能,則填充位 |
# | 空占位符,若可能,則填充位 |
. | 顯示一個句號,用做小數(shù)點 |
, | 使用逗號將數(shù)字分組 |
% | 將數(shù)字顯示為百分數(shù),如2.34將顯示為:234% |
/ | 轉(zhuǎn)義字符 |
‘abc’ | 顯示單引號內(nèi)的文本 |
“abc” | 顯示雙引號內(nèi)的文本 |
下面用一個例子來說明:
using System;
class Class1
{
static void Main( )
{
int iValue = 1025;
float fValue = 10.25f;
double dValue = 10.25;
Console.WriteLine("{0} {0:000000}",iValue); //填充0
Console.WriteLine("{0} {0:000000}/n",dValue);
Console.WriteLine("{0} {0:######}",iValue); //填充空占位符
Console.WriteLine("{0} {0:######}/n",dValue);
Console.WriteLine("{0} {0:#,####,#00}",iValue); //逗號分隔
Console.WriteLine("{0} {0:##,###,#00}/n",dValue);
Console.WriteLine("{0} {0:0%}",fValue); //百分號
Console.WriteLine("{0} {0:0%}",dValue);
}
}
運行結(jié)果如下:
格式指定符 | 名稱 | 格式 |
---|---|---|
d | 短日期格式 | mm/dd/yy |
D | 長日期格式 | day,month,dd,yyyy |
f | 完整日期/時間格式(短時間) | day,month,dd,yyyy hh:mm AM/PM |
F | 完整日期/時間格式(長時間) | day,month,dd,yyyy hh:mm:ss AM/PM |
g | 常規(guī)日期/時間格式(短時間) | mm/dd/yyyy hh:mm |
G | 常規(guī)日期/時間格式(長時間) | mm/dd/yyyy hh:mm:ss |
M或m | 月日格式 | month day |
R或r | RFC1123格式 | ddd,dd month yyyy hh:mm:ss GMP |
s | 可排序的日期/時間格式 | yyyy-mm-dd hh:mm:ss |
t | 短時間格式 | hh:mm AM/PM |
T | 長時間格式 | hh:mm:ss AM/PM |
u | 通用的可排序日期/時間模式 | yyyy-mm-dd hh:mm:ss |
U | 通用的可排序日期/時間格式 | day,month dd,yyyy hh:mm:ss AM/PM |
下面用示例說明:
using System;
class Class1
{
static void Main()
{
DateTime dt = DateTime.Now;
Console.WriteLine("d {0:d}",dt);
Console.WriteLine("D {0:D}",dt);
Console.WriteLine("f {0:f}",dt);
Console.WriteLine("F {0:F}",dt);
Console.WriteLine("g {0:g}",dt);
Console.WriteLine("G {0:G}",dt);
Console.WriteLine("m {0:m}",dt);
Console.WriteLine("M {0:M}",dt);
Console.WriteLine("r {0:r}",dt);
Console.WriteLine("R {0:R}",dt);
Console.WriteLine("s {0:s}",dt);
Console.WriteLine("u {0:u}",dt);
Console.WriteLine("U {0:U}",dt);
}
}
運行結(jié)果如下:
說明:本部分內(nèi)容參考了劉甲耀和嚴桂蘭編著的《C#程序設(shè)計教程》一書,該書由電子工業(yè)出版社于2007年2月出版。我個人認為該書質(zhì)量較高,實例詳細,適合學習者參考使用。
新聞熱點
疑難解答