积累一些不太常用的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/』
原文地址:https://www.cnblogs.com/xiaoxi666/p/7072696.html