C++ 初学(一)
在一次解决排序问题时,初步接触C++中的sort()函数,在问题解决上非常好用,不用自己再写排序的代码,就像python中 import 函数库一样,因为懒嘛,所以更懒,嘿嘿!!所以想接触一下C++,简单学习一下子。
C++
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
好了废话不多说,开始!
Hello world
#include <iostream>
using namespace std;//
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World"; // 输出 Hello World
return 0;
}
接下来我们讲解一下上面这段程序:
- C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 。
- 下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
- 下一行 // main() 是程序开始执行的地方 是一个单行注释。单行注释以 // 开头,在行末结束。
- 下一行 int main() 是主函数,程序从这里开始执行。
- 下一行 cout << “Hello World”; 会在屏幕上显示消息 “Hello World”。
- 下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。
输入、输出
C++的输出和输入是用“流”(stream)的方式实现的。有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中的,因此如果在程序中使用cin、cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中:#include <iostream>
尽管cin和cout不是C++本身提供的语句,但是在不致混淆的情况下,为了叙述方便,常常把由cin和流提取运算符“>>”实现输入的语句称为输入语句或cin语句,把由cout和流插入运算符“<<”实现输出的语句称为输出语句或cout语句。根据C++的语法,凡是能实现某种操作而且最后以分号结束的都是语句。
#include<cstdio>
#include<iostream>
#include <iomanip>
//格式化输出的头文件,注意这里不要加.h
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<a<<setw(2)<<b<<setw(2)<<c<<endl;
float num1 = 123.456f,num2 = 563.1f,num3 = 1.30f;
float num4 = 123456.4444f;
cout << setprecision(4);
cout << "第一个数:" << num1 << endl;
cout << "第二个数:" << num2 << endl;
cout << "第三个数:" << num3 << endl;
cout << "第四个数:" << num4 << endl;//endl 英语意思是end of line,即一行输出结束,然后输出下一行。
return 0;
}
头文件#include<iomanip>
是格式化输出的头文件,注意后面不加 .h,
使用setw()来控制占位宽度。
注意事项
- setw() 虽然带有括号,但是其实是一个操作符,并不是函数。
- setw() 主要引用头文件 iomanip 才能使用。
- 如果setw() 所约束的输出超过了限制,不会被截断。是多少位就输出多少位。
- 如果输出是浮点数,小数点也会占一个位。
- 如果输出是字符串,空格有段有效字符,占一个位。从上面的输出结果也可以看出来。
- setw() 只能约束住跟自己相邻的一个输出。也就是说
使用setprecision()控制浮点数有效位
注意事项:
- setprecision() 同样是一个操作符,需要包含头文件 iomanip。
- 如果输出浮点数不足位,不会在其后面补0。
- 如果末尾有0,默认是不输出的。后面我们有其他方法可以输出末尾的0。
- setprecision() 不同于setw(),setprecision() 设置之后,在下次设置之前都是有效的。从程序结果中可以看出来。
- 如果要输出的位数过多,则用科学计数法表示,10为基数。
setfioflags() 控制定点输出
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float num1 = 13.000f,num2 = 14.568f,num3 = 1.2f;
cout << setiosflags(ios::fixed|ios::showpoint);
cout << setprecision(4);
cout << "第一个数:" << num1 << endl;
cout << "第三个数:" << num2 << endl;
cout << "第二个数:" << num3 << endl;
return 0;
}
setiosflags() 是通过状态标志来实现对输出的控制的。状态标志功能如下表
状态标志 | 功能 |
---|---|
ios::left | 左对齐,右边填空格 |
ios::dec | 所有整数以十进制输出 |
ios::right | 右对齐,左边填空格 |
ios::scientific | 以科学计数法形式输出浮点数 |
ios::hex | 所有整数以十六进制输出 |
ios::fixed | 以定点形式输出浮点数 |
ios::oct | 所有整数以八进制输出 |
ios::showpoint | 显示小数点和尾部的零 |
ios::showpos | 在正数前面输出+ |
ios::uppercase | 对于十六进制输出,使用大写字母表示 |
setiosflags() 需要与 setprecision() 一起使用。如果状态标志设为 ios::fixed,那么setprecision()设置的数字,就表示小数位的个数,不足补零。
近期评论