C++的输入输出概述

博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++

座右铭:“不要等到什么都没有了,才下定决心去做”

大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点

目录

C++的输入输出

C++的输入输出

C++的输入输出流

iostream类库中有关的类

用流成员函数put输出一个字符

用流成员函数write输出字符串

用流成员函数get获取一个字符

1.无参数的get

3.有三个参数的get函数

用流成员函数getline读取字符串

用流成员函数read读取字符串


C++的输入输出

C++的输入输出

C++的输入输出包括以下三个方面的内容:

(1)对系统指定的标准设备的输入输出,如键盘输入数据,输出到显示器屏幕,这就是标准的输入输出

(2)以磁盘文件为对象进行的输入输出,从磁盘文件输入数据给程序,程序的数据输出到磁盘文件,这就是文件的输入输出(文件的I/O)

(3)对内存中指定的空间进行输入输出。通常是指一个字符数组为储存空间。这种输入输出为字符串输入输出(串I/O)

C++的输入输出流

iostream类库中有关的类

C++系统提供了输入输出的iostream类库。在iostream类库中包含许多用于输入输出的类。ios是抽象基类,由它派生出istream类、ostream类。istream类支持输入操作,ostream类支持输出操作。iostream类是从istream类和ostream类通过多重继承而派生的类,iostream类支持输入输出操作。

为了实现文件操作,C++的iostream类库中派生定义了用于文件操作的类:

fstreambase类:这是一个公共基类,文件操作中不直接使用这个类

ifstream类:派生于fstreambsae和istream,用于对文件进行提取操作

ofstream类:派生于fstreambase和ostream,用于对文件进行读入操作

fatream类:派生于fstreambase和iostream,用于对文件进行提取和读入操作

strstreambase是字符串流类基类,它派生定义了用于字符串操作的类:istrstream、ostrstream等

C++的输入输出概述_第1张图片

iostream.h(iostream)头文件中定义的类有ios、istream、ostream、iostream等

iostream.h(iostream)头文件包含了对输入输出流进行操作所需的基本信息。除此之外,还定义了以下4种流对象:

(1)cin:是istream的派生类istream_withassign的对象,是标准输入设备(键盘)输入到内存的数据流,所以称为标准输入流

(2)cout:是ostream的派生类ostream_withassign的对象,是从内存输出到标准输出设备(显示器)的数据流,所以称为标准输出流

(3)cerr和clog:作用相似,像输出设备(显示器)输出出错信息。它们区别在于cerr提供不带缓冲区的输出,clog提供带缓冲区的输出

(4)从键盘输入时使用cin流,向显示器输出时用cout流。向显示器输出出错信息时用cerr或clog流。

用流成员函数put输出一个字符

put

put的原型:

ostream& put (char c);

char c:输出的是单个字符

ostream& 返回类型是通用输出流的基类对象的引用,因此可以连续输出

类似于putchar

注意事项:

put函数的实参可以是:1.字符变量(如果是整形变量,会当作ASCII码值,输出对应ASCII码值的字符)2.可以是ASCII码值或者整形表达式

由于返回类型是通用输出流的基类对象的引用,所以可以来连续调用put函数

#include
using namespace std;
int main()
{
    char a='m';
    cout.put(a)<

用流成员函数write输出字符串

write

write的原型:

ostream& write(const char* s,streamsize n);

const char* s:输出字符串的首地址

streamsize n:输出字符串的个数

ostream& 返回类型是通用输出流的基类对象的引用,因此可以连续输出

类似puts

#include
using namespace std;
int main()
{
    char a[]="I Love You";
    int lenth=(int)strlen(a);
    cout.write("I Love You", lenth).put('\n');//可以调用put输出'\0'来进行换行
    cout.write(a, lenth)<

用流成员函数get获取一个字符

1.无参数的get

get

从输入流中提取一个字符

get的原型:

int get();

int 返回类型为整形(int)

注意:不管是读还是写数据,都是在缓冲区拿去数据,如果缓冲区有数据,就不会让你从键盘输入

#include
using namespace std;
int main()
{
    char c;
    int b;
    cout<<"第一次:输入两个字符"<

2.有一个参数的get

get的原型:

istream& get(char& c);

char& c:读取的数据给变量c

istream& 返回类型是通用输入流的基类对象的引用,因此可以连续输入

#include
using namespace std;
int main()
{
    char str;
    char ptr;
    cout<<"请输入数据"<

3.有三个参数的get函数

get的原型:

istream& get(char* pch,int nCount,char delim);

char* pch:从流中读取字符,然后把首地址放到pch

int nCount:从流中读取字符字符的个数,只能读取到nCount-1个字符,因为最后一个位置放'\0'

char delim:从流中读取字符,如果读取到字符delim则提前结束读取

istream& 返回类型为通用输入流的基类对象的引用,因此可以连续输入

#include
using namespace std;
int main()
{
    char arr[20];
    cin.get(arr, 7, ' ');
    cout<

用流成员函数getline读取字符串

getline从输入流中读取一行字符

getline的原型:

istream& getline(cahr* pch,int nCount,char delim);

char* pch:从流中读取字符,然后把首地址放到pch

int nCount:从流中读取字符字符的个数,只能读取到nCount-1个字符,因为最后一个位置放'\0'

char delim:从流中读取字符,如果读取到字符delim则提前结束读取

istream& 返回类型为通用输入流的基类对象的引用,因此可以连续输入

#include
using namespace std;
int main()
{
    char arr[20];
    cin.getline(arr, 7, ' ');
    cout<

用流成员函数read读取字符串

read用于从输入流中读取指定数目的字符,并将读取的字符存储

read的原型:

istream& read(char* pch,int nCount);

char* pch:从流中读取字符,然后把首地址放到pch

int nCount:从流中读取字符字符的个数,能读取到nCount个字符

istream& 返回类型为通用输入流的基类对象的引用,因此可以连续输入

#include
using namespace std;
int main()
{
    char arr[20];
    cin.read(arr, 7);//这里能读到nCount个字符,注意get(char* pch,int nCount,char delim)和getline(char* pch,int nCount,char delim)只能读取nCount-1个字符
    cout<

如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家!    

你可能感兴趣的:(「初学」c++,c++,开发语言,输入输出,iostream,ios)