代码框架
如果你不想深究背后的原理,初学时可以直接将这个“框架”背下来。
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
//在这里写
return 0;
}
#include
#include
是一个预处理命令,意思为将一个文件“放”在这条语句处,被“放”的文件被称为头文件。也就是说,在编译时,编译器会“复制”头文件iostream
中的内容,“粘贴”到#include <iostream>
这条语句处。这样,你就可以使用iostream
中提供的std::cin
、std::cout
、std::endl
等对象了。
main()
main()的意思就是主程序,如果你开始编译这个程序电脑会先执行main()里面的程序
return 0;
return 0;
表示程序运行成功。默认情况下,程序结束时返回 0 表示一切正常,否则返回值表示错误代码,但是如果不写return
0;语句的话,程序正常结束默认返回值也是 0。
注释
在 C++ 代码中,注释有两种写法:
-
行内注释
以
//
开头,行内位于其后的内容全部为注释。 -
注释块
以
/*
开头,*/
结尾,中间的内容全部为注释,可以跨行。
注释对程序运行没有影响,可以用来解释程序的意思,还可以在让某段代码不执行(但是依然保留在源文件里)。
输入与输出
cin
与 cout
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int x,y; //声明变量
cin>>x>>y; //读入x和y
cout<<y<<endl<<x;//输出y换行再输出x
return 0; //结束主函数
}
scanf
与 printf
scanf
与 printf
其实是 C 语言提供的函数。大多数情况下,它们的速度比 cin
和 cout
更快,并且能够方便地控制输入输出格式。
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
int x,y; //声明变量
scanf("%d%d",&x,&y); //读入x和y
printf("%d\n%d",y,x);//输出y换行再输出x
return 0; //结束主函数
}
其中,%d
表示读入/输出的变量是一个有符号整型 (int
型)的变量。
类似地:
%s
表示字符串。%c
表示字符。%lf
表示双精度浮点数 (double
)。%lld
表示长整型 (long long
)。根据系统不同,也可能是%I64d
。%u
表示无符号整型 (unsigned int
)。%llu
表示无符号长整型 (unsigned long long
),也可能是%I64u
。
除了类型标识符以外,还有一些控制格式的方式。许多都不常用,选取两个常用的列举如下:
%1d
表示长度为 1 的整型。在读入时,即使没有空格也可以逐位读入数字。在输出时,若指定的长度大于数字的位数,就会在数字前用空格填充。若指定的长度小于数字的位数,就没有效果。%.6lf
,用于输出,保留六位小数。
这两种运算符的相应地方都可以填入其他数字,例如 %.3lf
表示保留三位小数。
C++ 中的空白字符
在 C++ 中,所有空白字符(空格、制表符、换行),多个或是单个,都被视作是一样的。(当然,引号中视作字符串的一部分的不算。)
因此,你可以自由地使用任何代码风格(除了行内注释、字符串字面量与预处理命令必须在单行内),例如:
#include <iostream>
#include <cstdio>
//a
using namespace std;
int main() {
int /**/x,/**/y;
cin >>x
>>y;
cout/**/<<x<<
endl<<y;/**/
return 0;
}
但是更推荐这样
#include <iostream>
using namespace std;
int main() {
int x,y;
cin>>x>>y;
cout<<y<<endl<<x;
return 0;
}