前言
提示:这里可以添加本文要记录的大概内容:
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++ 面向对象程序设计教程(第四版)陈维新 林小茶 编著