基本框架
#include<bits/stdc++.h> //万能头文件
#define ll long long //简化long long数据类型的写法
using namespace std;
int main(){
......
return 0;
}
或int main(void){
......
}
数据类型
定义常量
⑴利用“#define”宏定义
标准格式:#define <变量名>(空格,不用“=”) <常量>
例:#define π 3.14159;
⑵使用“const”关键字(推荐)
标准格式:const <数据类型> <变量名>=<常量>
例:const int N=5;
Input/Output(I/O)
输入——
-
cin>>
最常用的输入方式。后面可接一个或多个变量(数字,字符或字符串).
数字——
int a,b;
cin>>a>>b;
字符(串)——
法一:
char a[10];
cin>>a;
cout<<a<<endl;
法二:
string str;
cin>>str;
cout<<str<<endl;//
或for (int i=0;i<str.length();i++){
cout<<str[i];
}
在上述代码"法二"中 ,之所以可以使用数组输出,是因为在C++中,string数据类型本就是由字符(char)数组构成的,其首位索引数字为0.
(其中,若字符串遇到空格(、回车或Tab键)的话,则会直接默认输出完成,即一次性只能输出空格前的部分.若想要显示出含空格的完整字符串,则不能使用“cin”的输出方法!!!)
2.cin.get()函数
此函数是从输入流中读取一个字符(必须是char类型,如若为int或double等则会出错).
- cin.get(<字符变量名>)
主要用于接收单个字符,若要用于字符串,则可用循环来实现.
char ch;
cin.get(ch);
(或ch=cin.get();)
cout<<ch<<endl;
char a[10];
for(int i=0;i<10;i++) {
cin.get(a[i]);
}
for(int i=0;i<10;i++){
cout<<a[i];
}
//经检验,不能在cin.get(a[i])语句的下方直接输出,必须用两个循环解决
- cin.get(字符数组名,接收字符数目)
因字符串就是由字符数组组成的,顾名思义,此类用于输入字符串!
3.getline(cin,<字符串变量>)
顾名思义,该种输入字符串的方式是适用于string类型而非char数组,可读入空格,遇到换行(回车)结束;但是,需注意开头可能含有换行,如进行while循环时,可使用getchar()防止换行符的影响!
string str;
getchar(); //使用getchar()防止输入n时的换行导致第一个str输出为空以及循环次数为n-1
while(n--){
getline(cin,str);//输入一个可包含空格的字符串
...
}
输出——
①printf写法——
- 优点:运行速度快,时间占比小,能快速实现具体语句的输出;方便处理小数点、列宽、对齐等题设要求;
- 缺点:代码相对较长,不利于代码的精简度和美观度;比较注意所选数据的数据类型
- 标准写法:
- printf( "...%<数据类型1> %<数据类型> ...( \ n )",<变量1>,<变量2>);
- 换行:printf(" \n ") ;
②cout写法——
- 优点:不需要注意所选数据的数据类型;代码较短,有利于增强代码的可读性
- 缺点:运行速率较慢,具体语句需要用多个“ << ”进行输出
- 标准写法:
- cout << <变量1> << <变量2> ( << endl ) ;
- 换行:cout << endl ;