c++入门——c++输入cin和输出cout的简单使用
c++输入cin、输出cout
- 1 cin
- 2 cout
- 3 cin和cout说明
c++在c语言的输入、输出函数的基础上进行了封装。
1 cin
c可以理解为控制台,in可以理解为输入。
参考代码:
void f(){
int a;float b;double c;char d;
cin>>a>>b>>c>>d;//这里和scanf是一样的功能
}
void f2(){
char st[20]={"\0"};
cin>>st;//不读空格
cin.getline(st,20);//读取一行的20个字符,包括空格,不包括换行符
(cin>>st).get();//不读空格,读完后吸收多余换行符
}
2 cout
参考代码
void f(){
int a=1;float b=2.2f;
cout<<a<<b;//输出变量,类似printf
char st[]="Hello, world.";
cout<<"Hello, world.";//输出字符串
cout<<st;//输出字符串
cout<<endl;//输出换行符endl,endl会刷新流
}
#include<iomanip>
//格式输出字符串
void f2(){
float b=2.2f;
cout<<fixed<<setprecision(3)<<b;//按3位小数输出浮点数
int a=4;
cout<<step(5)<<a;
}
其中endl:end of line。在c语言的换行的基础上新增了很多东西,例如刷新输出流等。
3 cin和cout说明
说明:
-
使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含
< iostream >
头文件以及按命名空间使用方法使用std。 -
cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含
<iostream>
头文件中。 -
<<
是流插入运算符,>>
是流提取运算符(从控制台提取一个数据,将数据的值给>>
后面的变量)。如果有学过运算符重载,可以知道这个提取运算符本质就是一个函数。
测试样例:
#include<iostream>
using namespace std;
int main() {
int a, b;
double c;
cin.operator>>(a);//可以理解为cin的成员函数
cin.operator>>(b).operator>>(c);
(cout.operator<<(a) << b).operator<<(c);//加()调整优先级
return 0;
}
-
使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。但在操作的数据量比较大时cin和cout会消耗更多的时间,所以使用再方便也要分情况使用。
-
实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,
注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应
头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,
规定C++头文件不带.h
;旧编译器(vc 6.0)中还支持<iostream.h>
格式,后续编译器已不支持,因
此推荐使用<iostream>+std
的方式:
#include<iostream>
using namespace std;
ps:关于cout和cin还有很多更复杂的用法,比如控制整形输出进制格式等等。因为C++兼容C语言的用法,这些用得不是很多,以后有机会再详细介绍。