天天看點

積累一些不太常用的C/C++語言知識(不斷更新)

這裡積累一些日常程式設計用得比較少的知識,不斷添加。

  • scanf("%c%*c%c",&a,&b); 其中的*表示跳過,本來輸入三個數字,結果中間那個讀入後被抛棄,a和b的值分别是第一次和第三次輸入的值。
  • printf("%d%*d%d",a,b,c,d); 其中*表示占位,相當于printf("%d%bd%d",a,b,c,d);注意這裡的b就相當于我們平時用的占位數。
  • printf("%#x",a); 其中#表示格式化的字首,比如十六進制會加上0x,八進制會加上0。
  • c++ std::cin關閉同步流:std::ios::sync_with_stdio(false); 可以使其與scanf讀取速度相差不太大(關閉同步流之後,不要同時混用cout和printf );進一步可以使用std::cin.tie(0);解除cin和cout的綁定。這種做法通常用于減少大量資料占用的IO時間,但是本人測試過,有一些個例的資料量在萬以上時,兩者差距仍然在5倍以上(個例參見敵兵布陣問題)。

『注:本文來自部落格園“小溪的部落格”,若非聲明均為原創内容,請勿用于商業用途,轉載請注明出處http://www.cnblogs.com/xiaoxi666/』