一、引入
第一个关于输入输出的C++代码
#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}
-
使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。
-
cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,也可以使用\n来输出换行,他们都包含在包含<iostream >头文件中。
-
<<是流插入运算符,>>是流提取运算符。
-
使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
**值得注意的是:**在早期,标准库将所有功能实现都在全局域中,并在以.h为后缀的头文件中声明。使用时,只需要包含相应的头文件即可。然而,后来这些实现被迁移到了std命名空间下。为了与C头文件区分开,并确保正确地使用命名空间,C++头文件被规定为不带.h后缀。值得注意的是,在一些旧的编译器(如vc 6.0)中,仍然支持<iostream.h>这种格式,但后续的编译器已经不再支持。因此,笔者建议在编写C++代码时,应使用<iostream>并使用std命名空间的方式来确保兼容性和规范性。
下面详细介绍C++的输入输出
二、什么时输入和输出
C++的I/O操作是在流中进行的,流本质上是字节的序列。当字节流从外部设备(如键盘、磁盘驱动器、网络连接等)流向内存时,我们称之为输入操作 。相反,当字节流从内存流向外部设备(如显示屏、打印机、磁盘驱动器、网络连接等)时,我们称之为输出操作。
I/O 库头文件
头文件 | 函数和描述 |
---|---|
<iostream> | 该文件明确界定了cin、cout、cerr与clog这些对象,它们各自对应着标准输入流、标准输出流、非缓冲的标准错误流,以及缓冲的标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器,比如 setw 和 setprecision,来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。 |
标准输出流(cout)
预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的,如下所示:
#include <iostream>
using namespace std;
int main( )
{
char str[] = "Hello C++";
cout << "输出的字符串是 : " << str << endl;
}
C++ 编译器根据要输出的变量的数据类型,自动选择合适的流插入运算符来显示对应的值。<< 运算符被重载以输出内置类型(如整型、浮点型、double型、字符串和指针)的数据项。如上例所示,流插入运算符 << 可以在一个语句中多次使用,以连续输出多个数据项。endl 则用于在行末添加一个换行符,从而实现换行。
标准输入流(cin)
预定义的对象**cin
** 是 iostream
类的一个实例。这个对象被关联到标准输入设备,通常情况下指的是键盘。通过使用流提取运算符 >>
,我们可以与 cin
对象进行交互,如下所示:
#include <iostream>
using namespace std;
int main( )
{
char name[50];
cout << "请输入您的名称: ";
cin >> name;
cout << "您的名称是: " << name << endl;
}
C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。流提取运算符 >> 在一个语句中可以多次使用,如果要求输入多个数据。
值得注意的是: cin 输入的时候是按照空白字符(不管是换行还是回车)分割的。
如果要按空格分割直到回车:
while( cin >> a ){
//...
if(cin.get()=='\n'){
break;
}
}
//cin.get() 则是直接读取,不忽略空白字符缓冲。
今天的分享就到这啦😉
如果我的文章对您有帮助,
请 "点赞" "收藏" "关注"
一键三连哦!
想了解更多知识请前往重生之我在VS写bug
如果以上内容有什么问题,欢迎留言,大家一起学习,共同进步。