C/C++常用小技巧

1. 输出回车:printf("\n")  ---->   cout<<endl;---->puts("");  (港巨专用QAQ).

2. 从子程序退出主程序:exit(0);

3. 取消cin与stdin的同步,缩短时间:ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);  (感觉还不如直接用scanf);

4. 判断一个数是不是整数:实型变量X,假如fabs(X-(int)X)<1e-8,则为整数。

5. 判断奇数 if(n&1);

6. i=i/2    ---->     i/=2    ---->     i>>=1;

7. 标准库的π :1.  acos(-1,0)     2.  文件开头加这句#define USE_MATH_DEFINES ,然后直接用 M_PI就行;

//直接加math.h头文件,直接用就行                                                     ————2018.5.19改

8.标准库的e(自然对数),1.exp(0.0)  2.M_E用法如M_PI

9. 使用gets()时,如果前面的步骤读入缓冲区了数据或者有个回车,需要加一个fflush(stdin);或者getchar();

//ps:fflush(stdin),并非c/c++标准定义,只适用于部分编译器,(如vc6),

c++,推荐用,先cin.clear(); 再cin.sync();                                               ————2018.4.23改

对于不同编译器,对fflush(stdin)的定义不同,最好不要用这玩意!!!  ————2019.3.26注

10. vector清空:定义vector<int>V ;       V.clear(),清空容器,vector<int>().swap(V);重置

 先v.clear();再v.shrink_to_fit();  ——2018.4.24补

11.用cin读取带空格、回车的字符串,用cin.get(字符数组名,要读取的长度,结束标志)。

12.C++中字符数组和string类的转换:

      (1) 字符数组转string : 

           char s[10];存入s[10]字符串后,定义string ss(s),或者string ss; ss=s  // ss+=s;

      (2)string 转字符数组:

           char s[10]; string ss="abcdefg"; 然后strcpy(s,ss_cstr()); //strncpy(s,ss.cstr(),10);

13.C语言支持double类型的取余,fmod(a,b),如 fmod(3.15,2)=1.150000;

14.切记。STL里面的东西都很慢,string慢,sstream更慢,慎用。

15.strrev(str);逆转字符串数组,C++用algotithm里的reverse(s.begin(),s.end()); string s;  

16.C++数字和string转换,#include<sstream>, stringstream STR;int n=231;string s;STR<<n;STR>>s;STR.clear();

17.string里查找子字符串的find()函数,string A,B;A.find(B) //找不到返回nops,找到就写if(A.find(B)==string::nops).

18.暂停屏幕,不仅可以system("pause")和getchar();试试cin.get();一样行哟~

19.常用输入输出,参见牛客给的样例:点击打开链接

20.判断一个数是不是2的幂,if(!(n&(n-1)&&n) return true; return false;

  因为n&(n-1)的结果是 0 ,2 ,4 ,8 , 16 ,32 .......

21.取int a的二进制的第k位,a>>k&1,注意,这里的k是从0开始,如a=7, 二进制表示为111,

那么a的第0,1,2位都是1,即a>>0&1 = 1 ,  a>>1&1 = 1, a>>2&1 = 1.

22.C语言的文件操作中,rename(char *oldname,char *newname):文件重命名操作,以及remove("文件路径"),移除文件操作,进行之前都要把文件关上fclose(fp);

未完待补充~~~        

全部评论

相关推荐

06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-19 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。&nbsp;她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务