Console.Write()格式輸出的格式項采用{x,y:z}的格式,各項說明:
x:索引組件
強制“索引”組件(也叫參數說明符)是一個從0開始的數字,可標識值列表中對應的元素。也就是說,參數說明符為0的格式項格式化參數列表中的第一個值,參數說明符為1的格式項格式化參數列表中的第二個值,依次類推。每一個格式項都可以引用所有的參數。例如,如果有三個值,則可以通過指定類似於“{1}{0}{2}”的源字符串來格式化第二、第一和第三個值。格式項未引用的值會被忽略。如果參數說明符指定了超出值列表范圍的項,將導致運行時異常。
y:對齊組件
可選的“對齊”組件是一個帶符號的整數,指示首選的格式化字段寬度。如果“對齊”值小於格式化字符串的長度,“對齊”會被忽略,並且使用格式化字符串的長度作為字段寬度。如果“對齊”為正數,字段的格式化數據為右對齊;如果“對齊”為負數,字段的格式化數據為左對齊。如果需要填充,則使用空白。如果指定“對齊”,就需要使用逗號。這個對齊組件沒用過,不熟悉。
z:格式字符串組件
可選的“格式字符串”組件由標准或自定義格式說明符組成。如果不指定“格式字符串”,則使用常規“G”格式說明符。如果指定“格式說明符”,需要使用冒號。
在網上找了,如下:
C 或 c 貨幣
D 或 d 十進制
E 或 e 科學型
F 或 f 固定點
G 或 g 常規
N 或 n 數字
X 或 x 十六進 制
然后是Console.Read()的使用方法。
Console.Read()的用法是從控制台讀取字符,用戶可以輸入一個字符然后按回車鍵,也可以輸入一串字符然后按回車鍵,回車鍵被按下之后,字符才被Console.Read()方法讀取。被讀取的除了鍵入的字符外,還包含一個換行和一個空行,所以下面的例子如果輸入一個非n的字符並回車,程序將輸出3行“not n”。並且這個方法的返回值是int類型,下面例子的第十二行如果不進行強制類型轉換的話,編譯器將會報錯。
using System;
using System.IO;
class test
{
public static void Main()
{
char getchar='y';
while( getchar!='n' )
{
Console.WriteLine("not n");
getchar=(char) Console.Read();
Console.WriteLine("getchar is {0}",getchar);
}
}
}
Console.Read()方法是以字符做為參數,也就是說不論什么輸入(即便是數字)都是作為字符處理的,而它的返回值是int類型,也就是說它返回相應的UNICODE碼。比如輸入d返回100,輸入1返回49等等。
但是看這個程序:
using System;
class myConsoleRead
{
public static void Main()
{
int mya=100;
while(maya!="exit")
{
Console.Write("{0}\t",mya);
mya=Console.Read();
}
}
}
下面是Console.Read()和Console.Readline()區分:
//for:熟悉Console.read()&Console.ReadLine()的方法
using System;
class read_info
{
public static void Main(string[] args)
{
//Console.ReadLine()的方法
Console.Write("請輸入你的姓名:");//Console.Write()方法是不換行輸出信息
string s = Console.ReadLine();
//此方法是讀取輸入的名字並把它存入到字符串s中;
Console.WriteLine("Hi,{0}.Welcome",s);//Console.WriteLine()是先輸出信息再換行
//Console.read()方法
Console.Write("請輸入你的生日:");
int i = Console.Read(); //不論輸入的是單個字符還是一個字符串,均只輸出第一個字符串
Console.Write("您的生日是:{0}!",i);
}
}
//Console.Read() Console.ReadLine()方法都是從鍵盤讀入信息,唯一不同的就是Console.Read() 方法用於獲得用戶輸入的任何值(可以是任何的字母數字值)的ASCII值.Console.ReadLine()呢?用於將獲得的數據保存在字符串變量之中.
read()時輸入的內容,以回車(換行)為結束,而這個換行又不會被read()方法處理,而留給了readline(),這readline()看見回車,就覺得這行是結束了
問題終於解決了,原來Console.Read();方法會讀取輸入的字符,包括換行符和回車,但是不處理,所以如果Console.Read();后面又有ReadLine();時,Console.Read();輸入的回車會被ReadLine();讀取,結果就相當於ReadLine();里直接輸入回車,不能輸入,直接結束了,看起來就像這句被“跳過”……