C++标准主函数:
int main()
{
return 0; //编译器到达main()函数末尾,默认就是
//这一句,因此这一句也可以不写(仅在main()中有效)
}
纯C++函数是没有.h的后缀名的(与C对比),如iostream —输入、输出流 (使用cin 输入和cout 输出 时,必须包含头文件 iostream)
名称空间:
#include<iostream>
using namespace xxx(iostream命名空间为std)
C++标准库所有的标识符都是在一个命名空间中定义的,相当于包,这样可以防止在大型工程中因重命名而造成的错误。
上面便在程序开头就声明了命名空间,因而后面程序可以直接调用该命名空间里的函数名,如cin,cout…… 下面两种写法也是允许的:
#include<iostream>
using std::cout; //写法一 只声明所需要的函数名
int main()
{
std::cout<< xxx <<std::endl;
//写法二 程序开头未声明命名空间
return 0;
}
流的概念以及部分常用函数
流的概念
数据之间的传输叫作流。 如iostream 叫输入输出流, cout是输出流对象,是一个类。同理,cin是输入流对象。
输入输出常用函数
cout<< xxx <<endl;
1. // "<<" 插入运输符,将后面xxx的内容插入
//输出流(即将内容显示到屏幕),同时 "<<"还可以作为
//左移运算符---运输符的重载(同一个东西,不同场景,
//不同含义和用法)
2. // "endl" (end line缩写):相当于C语言中的"\n"
在C++中,通常来说回车键,与空格和制表符(tab键)作用相同。
-
cout << xxx 会根据"<<"后面的数据类型来自动调整输出的内容。
-
cin >> xxx 从缓冲区中提取相应的内容,会丢弃结束符(回车,制表符,空格)-------遇到结束符便停止第一次提取,若缓存区开头第一个字符是结束符,cin会忽略它并清除。
-
a=cin.get();或 cin.get(a); 从缓存区中提取一个字符到变量a中,会丢弃结束符—将结束符留在缓冲区中。后者还可以这样写:cin.get(a).get(b); 可以将后一个字符读入变量b中。
-
cin.get(a,n); 从缓冲区中只提取前n-1个字符到变量a中,不会丢弃结束符(\n),但会忽略空格。
-
cin.getline(a,n); 与cin.get(a,n);作用相似,只是当缓冲区中数据个数大于n时会报错,而cin.get(a,n)则不会。cin.getline(a,n)不会丢弃结束符(\n)。
-
getline(cin, a); 将输入流传入a中,getline(b,a); 将b中内容复制到a中。
-
memcpy(目标地址,源地址,一次性复制的字节数sizeof()); 将源地址的指定字节内容复制到目标地址上,memcpy可以拷贝任何数据类型的对象,且与strcpy()相比memcpy()不会因遇见"\0"而结束,而是会拷贝完n个字节。
-
cin.ignore(n); 忽略缓冲区前n个字符。
-
int a; string w; w=to_string(a); //将a转换为字符串
C++数据类型相关
C++中数据类型有 int,char,short(16位),long(32位), long long(64位),这五种类型又有有符号(unsigned)和无符号(signed)两种,共十种类型。
变量相关
-
C++相比于C语言,新增初始化语法:
数据类型 变量名(变量初始值); 如:int value(10);
-
C++11里面更可以将大括号用于单值变量:
数据类型 变量名{变量初始值} 如: int a{7};
如果大括号里为空,则系统默认为变量赋0值。
-
C++的整形变量当取值超过其范围时,编译器会自动在另一端继续取值。
-
cout<<hex; 接下来会将cout显示的整数变为十六进制(八进制为oct,十进制为dec)。
常量相关
-
const 限定符(限定了声明的含义):
const int a=10;----a是一个符号常量,值为10。与#include a 10 作用相同,但比其更好,
1.明确了常量类型。2.可以限定常量作用域。
-
浮点常量:在数字后加f或F,若是long,double 类型后面加L。
如:8.2L,8.1e+3L—(8.1x10^3) ;这些数在默认情况下都是 double类型。 -
C++中强制转换两种写法:1.(int)a。2.a(int)。
-
C++11中的auto(自动)声明:
auto n=100, m=2.3; 如果使用关键字auto,而不指定类型,编 译器会把变量类型设置成与初始值相同。