- For 循環中省略了測試條件時,將認爲條件爲true。
clock_t
爲系統時間的類型名的別名,因此無論系統時間是long
還是 unsigned long
,都可以用clock_t
聲明。CLOCKS_PER_SEC
定義了系統時間與秒的換算關係。
typedef
與#define
的區別是define
在聲明多個變量時候只能拿別名替換一次,如果遇到#define byte char*
然後用byte a,b
聲明兩個變量,就會變爲char* a,b
。這就是預處理器的作用——講代碼做一些自動的“複製粘貼”。
- C++11開始提供了基於範圍的
for
循環,主要用於循環容器變量內部的值。
for(int x: {2, 3, 4, 5, 6})
{
cout<<x<<endl;
}
- 三種不同的輸入字符的方法進行比較(以後應該單獨開一個博客寫)
cin
忽略空格和換行符,即使輸入了也不會讀取。發送給cin
的輸入被存到緩衝區,只有在用戶按下回車後,輸入的內容纔會發送給程序。
cin.get(ch)
將讀取一行輸入,然後將其賦值給ch
。這種輸入方式仍然將輸入先存到緩衝器,按下回車後發送給程序。
- UNIX通過
ctrl+D
在鍵盤模擬文件尾條件。
- 如果要想修改函數外的值,一定要在聲明的時候將該參數聲明爲引用,或者傳遞該參數的地址。
- 因爲C++支持輸入輸出的重定向,所以如果輸入的是文件,我們就需要檢測文件的EOF(end of file)。如何檢測呢?最常見的方法是:
cin.get(ch);
while(cin.fail()==fail)
{
...
cin.get(ch);
}
while(cin.get(ch){
...
}
- 因爲
cin.get(ch)
的返回值是cin
,而cin
會在需要bool
值的位置自動返回bool
量,如果成功則爲true
。
- EOF是一個已經定義好的常量,如果用
cin.get()
函數,那麼直接把新讀取的字符與EOF做比較就可以了。注意:有些時候不允許將char
類型與EOF作比較,那時需要強制類型轉換到int
。
- 賦值語句的值爲左操作數的值
- 用
cin.get(ch)
更加符合面向對象的原則,可以將多個調用串聯起來,因爲每次cin.get(ch)
都會返回一個cin
對象,所以cin.get(ch1).get(ch2)
是合法的。
- 當每一行初始化的數組長度不同時(主要指的是char數組,即字符串),可以將長度不同的字符串組成的數組初始化爲
char
指針數組。
cin
忽略空格、換行符和製表符。