概念梳理:C和C++中流的基础概念介绍和部分代码示例


前言

提示:这里可以添加本文要记录的大概内容:

C语言与C++都具有流概念,有时候使用流的操作可以帮助我们简化操作流程,从而解决问题。
本文仅做基础流概念的介绍和基础使用,欲深入了解可以跳转本文中附带的其他文章链接。


提示:以下是本篇文章正文内容

一、C语言流的概念

下文引用内容来自C Primer Plus(第6版)中文版,P188

从概念上看,C程序处理的是流而不是直接处理文件,流(stream)是一个实际输入或者输出映射的理想化数据流。这意味着不同属性和不同种类的输入,由属性更统一的流来表示

概念梳理:

是一种抽象化数据概念,并不是实际存在的。
总所周知,我们在写C程序的时候都会在最开头加上一句

#include<stdio.h>

这其中的stdio.h头文件叫做标准输入输出头文件,stdio是指 “standard input & output”(标准输入输出)。

标准输入流stdin流绑定键盘,其将键盘视为一种存储设备上的普通文件,我们从键盘上输入的
字符数据会被存放在这个流当中
,这些字符数据被它视为从文件中提取到的数据,键盘是数据的来源。我们在C语言中经常使用的scanf函数就是从stdin流中提取数据存入到我们指定的变量之中从而达到预期目标的

标准输出流stdout流是类似的,不过其绑定的是我们的电脑显示器,它将显示器视为一种存储设备上的普通文件。显示器是这些标准输出函数的最终目标,是数据被复制后的去向。在我们使用如printf之类的函数时,它们会将指定的字符串和变量数据输出到stdout流中,进而显示到我们的显示器上。

行缓冲机制就是建立在这些流机制上的。

二、C++流的概念

下文引用内容来自C++ Primer Plus(第6版)中文版,P593

C++程序把输入和输出看做字节流输入时,程序从输入流中抽取字节;输出时,程序将字节插入到输出流中。对于面对文本的程序,每个字节代表一个字符,更通俗地说,字节可以构成字符或数据的二进制表示。输入流中的 字节可能来自键盘,也可能来自存储设备(如硬盘)或其他程序。同样,输出流中的字节可以流向屏幕、打印机、存储设备或其他程序。流充当了程序和流源或流目标之间的桥梁。这使得C++程序可以以相同的方式对待来自键盘的输入和来自文件的输入。C++只是检查字节流,而不需要知道字节流来自何方。

概念梳理:

C++程序的最上方也有着类似于C语言中的语句

#include<iostream>
using namespace std;

namespace是命名空间std是该命名空间的名称。所有C++标准程序库中的标识符都被定义在了这个名为std的namespace中。命名空间的使用可以避免函数或变量重名冲突时带来的困扰,特别是多人合作的大型项目中,这显得尤为重要。

iostream头文件和命名空间的更深层次介绍请转如下连接,本文仅做简单介绍以供理解。

插入连接

iostream头文件包含类库如下:

类名说明头文件
ios流基类iostream
istream通用输入流类和其他输入流的基类iostream
ostream通用输出流类和其他输出流的基类iostream
iostream通用输入输出流泪和其他输入输出流的基类iostream

C++中的流操作示例

string类型的字符串转变成int类型的数据

int num;
string numstring;
cin>>numstring;
stringstream stream(numstring);  
stream>>num;  

如果string字符串内含有的字符都是数字,转化到int类型的数据也是整数。如果其中含有除数字以外的其他字符,例如字符串"z2333abc",这种字符串转换而成的数据流则会在之后的操作中让num变量大小为0。
若是使用得当,上述代码不失为判断用户输入的方法。

总结

提示:这里对文章进行总结:
例如:以上就是全部内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

参考文献:

1、C Primer Plus(第6版)中文版
2、C++ Primer Plus(第6版)中文版
3、C++ 面向对象程序设计教程(第四版)陈维新 林小茶 编著

其他内容

iostream头文件和命名空间的深入介绍

iostream头文件和命名空间的深入介绍

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值