语法基础
c++大致的一个基础结构为
# include <iostream>
using namespace std;
int main()
{
return 0;
}
其中:isotream
包含一个常用的cin
输入,cout
输出
整数
例如:编写一个a+b
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
return o;
}
如果想要使用printf
和scanf
,这代码开头的头文件就要发生改变# include <cstdio>
#include<cstdio>
using namespace std;
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a+b=%d",a+b);
return 0;
}
相较于cin
和cout
,printf
和scanf
具有更好的可视化效果。但是需要提前判断输入变量的类型。
当然整数除了int
以外还有long long
#include <cstdio>
using namespace std;
int main()
{
long long a, b;
scanf("%lld %lld", &a, &b);
printf("%lld %lld\n", a, b);
return 0;
}
浮点数
当输入为浮点数的时候,采用cin
和cout
要比printf
和scanf
要麻烦的多。因此建议使用后者
#include <cstdio>
using namespace std;
int main()
{
float a, b;
scanf("%f %f", &a, &b);
printf("a + b = %.2f", a+b);
return 0;
}
除了float
以外还有double
#include <cstdio>
using namespace std;
int main()
{
double a, b;
scanf("%lf %lf", &a, &b);
printf("%lf %lf", a, b);
return 0;
}
字符
相较于字符来说,cin
在输出的时候不会读取空格,但是scanf
会。
#include <iostream>
using namespace std;
int main()
{
char a, b;
cin >> a >> b;
cout << a << b;
return 0;
}
此时如果输入:a
b
输出:ab
#include <cstdio>
using namespace std;
int main()
{
char a, b;
scanf("%c%c", &a, &b);
printf("%c %c\n", a, b);
return 0;
}
此时如果输入:a
b
,那么输出:a
因为scanf
能够读取空格,但是cin
不能
四则运算
和数学里面一样
需要注意
#include <iostream>
using namespace std;
int main()
{
cout << -5 / 2 << endl;
cout << 5 / 2 << endl;
return 0;
}
输出为:-2
2
,输出的正负取决于前面数字的正负。取余数也是一样。
同时还需要注意的是:数的自加和自减
# include <iostream>
using namespace std;
int main()
{
int a = 3, b = a;
int c = a++, d = ++b;
cout << a << ' ' << c << endl;
cout << b << ' ' << d << endl;
return 0;
}
此时输出的就是:4 3
和4 4
发现++a
就是先a自加后在传,而a++
则是先传后加
强制转换
通常int
、float
、char
是可以想相互转换的
# include <iostream>
# include <cstdio>
using namespace std;
int main()
{
int a = 48;
char b = (char)a;
cout << b << endl;
float c = 5.7;
int d = (int)c;
printf("%d", d);
return 0;
}
输出为:0
和5
即浮点数取整通常是向下取整