空白是指用於格式化的字元,在c++中主要指空格符、換行符、製表符。c++編譯器通常會忽略空白(一些特殊情況除外,比如輸出時的空格),所以下面幾個語句是一樣的。
cout
<< "hello world!";
cout
<< "hello world!";
cout
<< "hello world!";
cout
<< "hello world!";
可以看到,即使最後乙個語句中使用了換行符也是沒有關係的,編譯器會忽略它。
同樣,下面幾個函式也是相同的。
int
add(int x, int y)
intadd
(int x, int y)
intadd
(int x, int y)
intadd
(int x, int y)
編譯器不會忽略空白的一種情況是引號中的文字,比如:
"hello world!"
與
"hello world!"
是不同的,列印出的格式與引號中格式相同。
注意引號中是不允許有換行符的。
cout << "hello
world!"
<< endl; // 不允許
另一種情況則是在單行注釋中,單行注釋只作用於一行,因此這樣會給你帶來麻煩:
cout
<< "hello world!"
<< endl; // 乙個單行注釋
這個非注釋內容
與一些語言不同,c++並沒有強制性的格式標準(如前面所提,c++哲學是對程式設計師的絕對信任)。在c++漫長的發展歷程中,有多種格式化方法成為預設的標準,你會發現何種方法更好一直存在爭議,我們的基本原則是,最好的方法應當是使**可讀性最好、一致性最好的方法。推薦格式如下:
一、製表符應設定為4個空格大小(大多數ide中都可以進行配置),當然3個空格也是不錯的。使用空格代替製表符的好處是,在不同的軟體中開啟**時能保證縮排不變。
二、指示函式範圍的大括號應與函式名對齊並且另起一行。
int
main
()
三、花括號中的每乙個語句之前應有乙個製表符大小的空白,如下:
int
main
()
四、每一行不應太長,通常來說,72, 78, 或80個字元已經是最長的了。如果一行太長,就應當在合適的結點將其分為多行,多行之間再使用乙個製表符。長語句之間最好新增一行空白分開,以增加可讀性。如下:
int
main
()
五、如果乙個長語句被分為多行,那麼句中的操作符(比如<
cout
<< "this is a really, really"
<<
"really long line"
<< endl;
而不是
cout
<< "this is a really, really"
<< "really long line"
<< endl;
這樣更容易看出兩行是乙個語句。
六、使用空格以使**更容易閱讀。
不易閱讀
易於閱讀
不易閱讀
易於閱讀
不易閱讀
// cout and endl live in the iostream library
cout
<< "hello world!"
<< endl;
// these comments make the code hard to read
cout
<< "it is very nice to meet you!"
<< endl;
// especially when all bunched together
cout
<< "yeah!"
<< endl;
易於閱讀
// cout and endl live in the iostream library
cout
<< "hello world!"
<< endl;
// these comments are easier to read
cout
<< "it is very nice to meet you!"
<< endl;
// when separated by whitespace
cout
<< "yeah!"
<< endl;
這個風格會貫穿整個教程,我們也希望它成為你的習慣。
c++給了你足夠的自由來選擇自己喜歡的風格,但我們仍然希望你使用上述風格,因為經過多代成千上萬的程式設計師無數的**檢驗,這個風格被證明是成功的。
1 6 空白符和基本格式化
from 空白符是被用於格式化的字元。在c 中,空白符主要有空格,製表符,換行。在c 編譯器中往往使用一些小的處理將空白符忽略。因此,下面這些語句都是一樣的 2 3 cout hello world 4 5 cout hello world 6 7 cout8 hello world 即使最後一條語...
Git的格式化與空白
格式化與空白是在跨平台情況下,多人協作開發時,遇到的令人頭疼的細小問題 由於ide的不同或者windows程式設計師在跨平台專案中的檔案行尾加入了回車換行符,這個細微的空格變化會不經意地進入大家合作的工作或提交的補丁中,在這種情況下,就可能會遇到行尾結束符問題 這是因為windows使用回車和換行兩...
歷屆試題 空白格式化
本次大賽採用了全自動機器測評系統。如果你的答案與標準答案相差了乙個空格,很可能無法得分,所以要加倍謹慎!但也不必過於驚慌。因為在有些情況下,測評系統會把你的答案進行 空白格式化 其具體做法是 去掉所有首尾空白 中間的多個空白替換為乙個空格。所謂空白指的是 空格 製表符 回車符。以下 實現了這個功能。...