C#控制臺輸出有兩種方法:Write()和WriteLine(),它們都是命名空間System中Console類的方法,且都具有多達18種或以上的重載形式,能夠直接輸出C#提供的所有基本數據類型。其中,Write()方法輸出一個或多個值后不換行,即其后沒有新行符;而WriteLine()同樣是輸出一個或多個值,但輸出完后換行,即其后有一個新行符。
為了控制輸出內容或文本的輸出格式,這兩種方法提供了較豐富的格式控制方法。
基本數據類型的簡單輸出形式為:
Console.Write("格式串",參數表);
Console.WriteLine("格式串",參數表);
下面是一個完整的例子:
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(); //沒有參數,則只輸出一個換行符,即光標移到下已行進行輸出
Console.WriteLine("iValue={0},fValue={1}",iValue,fValue);
Console.Write("dValue={0} ",dValue);
Console.WriteLine("cValue={0}",cValue);
}
}
程序中,{0}和{1}分別代表后面的參數,0為第一個參數,1為第二個,以此類推。
運行結果如下:
其形式為:
Console.WriteLine(“格式”,對象1,對象2);
如:
{0,-8} 輸出第一個參數,且值占8個字符寬度,且為左對齊
{1,8} 輸出第一個參數,且值占8個字符寬度,且為右對齊
{1:D7} 作為整數輸出第二個參數,域寬為7,用0補齊
{0:E4} 輸出以指數表示,且具有4位小數
格式字符 | 說明 | 注釋 | 示例 | 示例輸出 |
---|---|---|---|---|
C | 區域指定的貨幣格式 | Console.Write(“{0:C}”,3.1); Console.Write(“{0:C}”,-3.1); |
$3.1 ($3.1) |
|
D | 整數,用任意的0填充 | 若給定精度指定符,如{0:D5},輸出將以前導0填充 | Console.Wirte(“{0:D5}”,31); | 00031 |
E | 科學表示 | 精度指定符設置小數位數,默認為6位,在小數點前面總是1位數 | Console.Write(“{0:E}”,310000); | 3.100000E+003 |
F | 定點表示 | 精度指定符控制小數位數,可接受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 | 數字 | 產生帶有嵌入逗號的值,如3,100,000.00 | Console.Write(“{0:N}”,3100000); | 3,100,000.00 |
X | 十六進制數 | 精度指定符可以用于前導填充0 | Console.Write(“{0:X}”,230); Console.Write(“{0:X}”,0xffff); |
FA FFFF |
如果我想顯示一個分數格式的數字該怎么辦呢?C#還提供了一些特殊格式化的輸出形式:
說明符 | 說明 |
---|---|
0 | 零占位符,若可能,則填充位 |
# | 空占位符,若可能,則填充位 |
. | 顯示一個句號,用做小數點 |
, | 使用逗號將數字分組 |
% | 將數字顯示為百分數,如2.34將顯示為:234% |
/ | 轉義字符 |
‘abc’ | 顯示單引號內的文本 |
“abc” | 顯示雙引號內的文本 |
下面用一個例子來說明:
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);
}
}
運行結果如下:
格式指定符 | 名稱 | 格式 |
---|---|---|
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 | 常規日期/時間格式(短時間) | mm/dd/yyyy hh:mm |
G | 常規日期/時間格式(長時間) | 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);
}
}
運行結果如下:
說明:本部分內容參考了劉甲耀和嚴桂蘭編著的《C#程序設計教程》一書,該書由電子工業出版社于2007年2月出版。我個人認為該書質量較高,實例詳細,適合學習者參考使用。
新聞熱點
疑難解答