0%

C/C++中的小细节

​ 大二下开学,蓝桥杯,然后呢,第一次接触竞赛题,发现如此之难,看解题思路视频,发现看得懂思维跟上了,发现数据结构是个很重要的东西,但是学的是用C,而讲解用的都是C++,还发现C++有很多好用的内置函数,虽然学过C++,发现很多细节东西都不懂,所以重新学习了一下。

​ 陌生的细节,记下:

1、C++中不能用void main,但是可以用int main (void)
2、为什么需要使用using namespace std;因为在C++中 #include<iostream>没有扩展名,而cin/cont/endl等在std中,实际上为std::cin/std::cout//std::endl而为保证方便直接使用cin/cout/endl所以在main函数前加上using namespace std,即使用std名称空间,若只用cin,还可以在main函数前加上using std::cin。
3、可以这样去初始化变量,int a(432)。
4、unsigned short范围是0~65535,然而short范围是-32768~32767。

5、cout<<hex 以十六进制输出,cout<<dec以十进制输出,cout<<oct以八进制输出。

6、\a 表示振铃字符“坑爹找了半天没找到像铃铛的字符 结果是会响……”,\b 向后退一格(back),\t(tab),\r(回车)……

7、coust 限定符:

#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
const int code = 10;
code = 20;//一定出错 因为code已经被定义为常量无法更改“error: assignment of read-only variable 'code'
cout << code << endl;
return 0;
}

8、d.dddE+n指的是将小数点向右移n位,而d.dddE-n指的是将小数点向左移n位。之所以被称为浮点数是因为小数点可移动。

9、cin.getline(name,20); 第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数,若为20,则最多只能读取19个字符,余下的用来存储“\0”,若没有第二个参数,则当用户输入“Enter”生成的换行符的时候,换行符被替换为空字符。但是基本上使用get();

10、

cin.get(str1,20);

cin.get();

or

cin.get(str2,20).get();

多一个get()是为了读取掉换行符!

11、string 类!!!

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char const *argv[])
{
string str3;
string str1 = "this's";
string str2 = " an apple";
str3 = str1 + str2;
cout << str3 << endl;
str3 += str2;
cout << str3 << endl;
return 0;
}

可见 string类 可以相互赋值,可以拼接,还可以附加(+=)。