1.2.6 通過標準輸出顯示文本
main()函數(shù)體的第一行在控制臺窗口顯示Game Over!和一個換行符。
std::cout << "Game Over!" << std::endl;
“Game Over!”是字符串,即一連串可以打印的字符。從技術(shù)上而言,它是一個字符串字面值,即它就是引號中間的那些字符。
cout是在iostream文件中定義的對象,用于向標準輸出流發(fā)送數(shù)據(jù)。在大多數(shù)程序中(包括本程序),標準輸出流僅僅是指計算機屏幕中的控制臺窗口。
輸出運算符(<<)用于向?qū)ο骳out發(fā)送字符串。可以將輸出運算符想象成一個漏斗,它將開口一端的數(shù)據(jù)收集起來并使其流向收口的一端。所以,字符串順著漏斗流向了標準輸出——屏幕。
cout的前綴std告訴編譯器這里的cout來自標準庫。std是名稱空間??梢詫⒚Q空間想象成電話號碼的區(qū)號,它唯一標識了成員所屬的組。名稱空間后面跟著作用域解析運算符(::)。
最后,程序還向標準輸出發(fā)送了std::endl。endl在iostream中定義,它也是std名稱空間中的一個對象。向標準輸出發(fā)送endl類似于在控制臺窗口中按下回車鍵。實際上,如果此時向控制臺窗口發(fā)送另一個字符串,它將出現(xiàn)在屏幕的下一行。
這些概念可能有些難以理解。請看圖1-3,它以圖形方式形象地表示了所有描述過的元素之間的關(guān)系。
圖1-3 標準C++的實現(xiàn)包含了一個稱為標準庫的文件集合。標準庫包含了iostream文件。
iostream文件又包含了各種定義,其中包括cout對象的定義
1.2.7 語句的終止
如果留意函數(shù)的第一行,會發(fā)現(xiàn)它以一個分號(;)結(jié)尾。這是因為這一行是一條語句——控制程序執(zhí)行流程的基本單元。所有語句都必須以分號結(jié)尾,否則編譯器會報錯,而且不會編譯程序。
1.2.8 從main()函數(shù)返回值
函數(shù)的最后一條語句將0返回給操作系統(tǒng)。
return 0;
從main()函數(shù)返回0表示程序正常結(jié)束。操作系統(tǒng)與返回值無關(guān)。一般來說,可以像該程序一樣簡單地返回0。
技巧
在運行Game Over程序時,可能只是看見控制臺窗口一閃而過。那是因為C++太快,它在不到一秒的時間內(nèi)打開一個控制臺窗口,顯示Game Over!,然后關(guān)閉窗口。然而,在Windows操作系統(tǒng)下,可以創(chuàng)建批處理文件,在運行控制臺程序后暫停。這可以保持控制臺窗口處于打開狀態(tài),以便查看程序結(jié)果。因為編譯后的程序名為game_over.exe,所以可以簡單地創(chuàng)建由以下兩行代碼組成的批處理文件:
game_over.exe
pause
創(chuàng)建批處理文件的步驟如下:
(1) 打開一個文本編輯器,如Notepad(不能是Word或WordPad)。
(2) 輸入文本。
(3) 以.bat擴展名保存文件,如game_over.bat。
最后,雙擊文件圖標運行批處理文件。因為批處理文件會使控制臺窗口處于打開狀態(tài),這時應(yīng)當能看到程序結(jié)果。