cin使用注意幾點:
1. cin可以忽略有效輸入之前的分隔符(空格、製表符\t、換行符\n)
舉例說明:
char ch = 『a』;
std::cin >> ch ;
std::cout << ch << '\n';
當從鍵盤 輸入 [enter] [enter] [enter]z 即 輸入 回車、空格、回車、製表符\t、回車、字元z
這些分隔符也會儲存在輸入緩衝區中,回車鍵以 換行字元 『\n』 儲存,空格鍵 以 空格字元 『 』 儲存,tab鍵 以 製表符 『\t』 儲存
cin從輸入緩衝區讀取字元時,此時輸入緩衝區中儲存的分別是 換行符(『\n』)、空格(' ')、換行符(『\n』)、製表符('\t')、
換行符(『\n』)、字元z
讀取過程: cin在讀取輸入緩衝區時,第乙個遇到 換行符,cin 忽略並刪除 緩衝區中的第乙個換行符;然後繼續讀取第二個
字元,此時字元為空格字元,cin 也忽略並刪除緩衝區中的第二個字元(空格字元);繼續讀取第三個字元(換行符),cin
忽略並刪除 輸入緩衝區中的換行符;繼續讀取第4個字元(製表符),cin 忽略並刪除 製表符;繼續讀取第5個字元(換行符)
,忽略並刪除 換行符;繼續讀取第6個字元(字元z),將字元z存入字元變數ch中。
輸出:cin可以忽略有效輸入 z 之前的那些分隔符,最終 ch 的值為z,程式最終輸出 z
理解重點:
1. cin讀取過程中, 若緩衝區中的第乙個字元為分隔符,則可以忽略並刪除 輸入緩衝區中的 分隔符(空字元、換行符、製表 符);
2. 若緩衝區為空,cin會阻塞等待資料到來;
3. 若從鍵盤輸入乙個字串 hello ,只有按下回車後,字串才會被送入輸入緩衝區,此時,輸入緩衝區中 實際上有6個字 符,而不是5個字元,最後乙個回車會轉化為 換行符(『\n』)儲存在輸入緩衝區中;
注意:cin 只是忽略 分隔符,但實際讀取輸入緩衝區中是存在分隔符的。
2. cin>> 連續輸入
寫給自己的幾點建議持續更新
1 通常在遍歷乙個iterator的時候不建議修改集合本身。2 hashtable上下文中同步是什麼意思?同步意味著在乙個時間點只能有乙個執行緒可以修改雜湊表,任何執行緒在執行hashtable的更新操作前需要獲取物件鎖,其他執行緒等待鎖的釋放。3 select from v locked obje...
git使用(持續更新)
做專案時如果不進行版本管理,經常會遇到 修改了,過段時間卻找不到修改的地方。怎麼辦,開始用git來進行管理。在本機上安裝好git之後,建立本地的repository還是比較容易的,在專案所在目錄下,git bash中敲入git init,這樣就初始化了git。具體的一些指令說明如下 1 本地提交 g...
索引使用(持續更新)
不是每個欄位都是可以加索引的,比如文字太長的,mysql innodb最大長度是767位元組,不支援全文索引。myisam才支援全文索引 經常使用explain檢視sql執行計畫 單錶查詢 explain select from test user where user name 哈哈2017 02...