經過上篇的學習,已經對C#有了一個初步的認識,能夠在vs2010中建立控制台應用程式,記得我剛開始學習C的時候老師也是這樣教我們的,接下來就學習C#的輸入與輸出。
C#的輸入與輸出其實是引用System定義好的Console.類型,
輸入: Console.ReadLine() (讀入一行String類型的字串以斷行符號鍵結尾),
Console.Read() (接受從鍵盤輸入的第一個字元,並返回它的ASCII碼值),
Console.ReadKey() (等待使用者按下任意鍵,一次讀入一個字元。);
輸出:Console.WriteLine() (輸出的內容顯示在同一行,並且游標移到下一行),
Console.Write() (輸出內容顯示在同一行,游標不換行)
下面我就寫個程式,讓我們輸入 "HC666祝你國慶快樂!!!" 然後輸出;
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FirstProgram { class Program { static void Main(string[] args) { String say = Console.ReadLine(); //因為它的傳回值是String類型的所以定義的say也得是String類型 Console.WriteLine(say); //輸出say的類容並換行。。。。對比以下的輸出 Console.Write("aaa"); //輸出aaa不換行接著輸出bbb Console.Write("bbb"); //輸出為aaabbb } } }
我鍵入 HC666祝你國慶快樂!!! 再輸入斷行符號後輸出結果顯示為:
HC666祝你國慶快樂!!! HC666祝你國慶快樂!!! aaabbb
也許當你按下斷行符號的時候,你的運行視窗會一閃而過然後就退出了,這是應為當程式執行完Console.Write("bbb");時就沒有執行語句了所以就結束了退出。其實以前用C寫程式的時候也有遇見,那時候可以在末尾的時候添加System("pause"); 或者寫getchar(); 來讓程式停頓,我想C#也適用吧!上網查了下Console.ReadKey()果然可以其實他還有其他的功能,更多的還是用來暫停程式。於是我將Console.ReadKey()添加在了末尾。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FirstProgram { class Program { static void Main(string[] args) { String say = Console.ReadLine(); //因為它的傳回值是String類型的所以定義的say也得是String類型 Console.WriteLine(say); //輸出say的類容並換行。。。。對比以下的輸出 Console.Write("aaa"); //輸出aaa不換行接著輸出bbb Console.Write("bbb"); //輸出為aaabbb Console.ReadKey(); //等待輸入 } } }
果然當程式輸出 aaabbb 之後游標就停在後面。開始的時候說了Console.ReadKey()能夠讀入使用者所輸入的第一個鍵,並且是否顯示此鍵 (預設是顯示按鍵的)Console.ReadKey(true)不顯示Console.ReadKey()或Console.ReadKey(false)顯示,於是我又對上面的代碼添加了一些要求不顯示使用者所按下的鍵,但之後輸出此按鍵;
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FirstProgram { class Program { static void Main(string[] args) { String say = Console.ReadLine(); //因為它的傳回值是String類型的所以定義的say也得是String類型 Console.WriteLine(say); //輸出say的類容並換行。。。。對比以下的輸出 Console.Write("aaa"); //輸出aaa不換行接著輸出bbb Console.Write("bbb"); //輸出為aaabbb Console.WriteLine(); char a= Console.ReadKey(true).KeyChar; //將按鍵以字元形式賦值給a Console.WriteLine(a); Console.ReadKey(); //等待使用者輸入 } } }
我重複上面的輸入 HC666祝你國慶快樂!!!斷行符號 然後按了“A”鍵不用斷行符號程式就向下執行了,因為它只允許輸入一個字元,結果為:
HC666祝你國慶快樂!!! HC666祝你國慶快樂!!! aaabbb A
我之前說Console.ReadKey()大多數是用來暫停程式的,其實也不對,我查了一下它還有好多其他的功能比如 String ch = Console.ReadKey().Key.ToString; 將按鍵轉化為String類型,想到String類型我就激動了,用它可以進行快速簡潔的字元處理,這一點學過C++的同學很清楚,以後再仔細研究。如果用ReadKey()當作結尾的暫停語完全沒有必要這麼做,vs2010自己就可以做到,每次運行程式的時候不要單擊 那個綠色的小三角 而是 調試——〉開始執行(不調試)單擊就能搞定。
最後Console.Read()它與Consle.ReadKey()想比前者能輸出不止一個字元,但只取第一個字元,並返回它的ASCII碼值,這個我們可以查詢一個字元的ASCII碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FirstProgram { class Program { static void Main(string[] args) { int a= Console.Read(); Console.WriteLine(a); } } }
我在運行視窗中輸入 1234 斷行符號 結果為:
123449經過查閱1的ASCII 為49。
對01的深入探究:
上一篇中vs在為我們自動產生專案檔時自動編寫了一系列的using system....我說了它其實是引用系統預定義的類型,本著學無止境的碳素精神我將他們全部刪除了,這樣的話程式還能運行嗎?與C 對比,如果我們用C或C++編寫程式時去迴轉檔案,程式回報錯運行不了,C#是基於C/C++也高於它,因此它是能夠啟動並執行只需要……
namespace FirstProgram { class Program { static void Main(string[] args) { int a= System.Console.Read(); System.Console.WriteLine(a); } } }
因為Console.是在System命名空間中定義的,在編碼開頭引用避免了後面的重複調用,所以可以刪除它的引用但是就必須在每次調用方法時調用命名空間。
以上就是C#學習日記02--輸入與輸出的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!