iostream头文件的作用是什么

iostream头文件包含了操作输入输出流的方法,比如读取一个文件,以流的方式读取;其作用是:让初学者有一个方便的命令行输入输出试验环境。iostream的设计初衷是提供一个可扩展的类型安全的IO机制。

iostream头文件的作用是什么

本教程操作环境:windows7系统、C++17版本、Dell G3电脑。

C++语言不直接处理输入输出,而是通过一簇定义在标准库中的类型来处理IO。这些类型支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等。还有一些类型允许内存IO,即,从string读取数据,向string写入数据。

C++/C++11中头文件定义了标准输入/输出流对象。包含了也自动包含了、、、和。

头文件中的对象包括:

(1)、narrow characters(char)即窄字符:cin(standard input stream (object))、cout(standard output stream (object))、cerr(standard output stream for errors (object))、clog(standard output stream for logging (object));

(2)、wide characters(wchar_t)即宽字符:wcin(standard input stream (wide) (object))、wcout(standard output stream (wide)  (object))、wcerr(standard output stream for errors  (wide)  (object))、wclog(standard output stream for logging (wide) (object))。

__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 istream cin, *_Ptr_cin;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout, *_Ptr_cout;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cerr, *_Ptr_cerr;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream clog, *_Ptr_clog;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wistream wcin, *_Ptr_wcin;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wcout, *_Ptr_wcout;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wcerr, *_Ptr_wcerr;__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 wostream wclog, *_Ptr_wclog;

C++ IO heads, templates and class ( https://www.ntu.edu.sg/home/ehchua/programming/cpp/cp10_IO.html ):

iostream头文件的作用是什么

IO库:

(1)、istream(输入流)类型,提供输入操作;

(2)、ostream(输出流)类型,提供输出操作;

(3)、cin,一个istream对象,标准输入流,用来从标准输入读取数据;

(4)、cout,一个ostream对象,标准输出流,从标准输出写入数据,输出可以重定向( “>” 或“1>”)到一个指定文件中;用于将数据写入标准输出,通常用于程序的正常输出内容。

(5)、cerr,一个ostream对象,标准错误流,通常用于输出程序错误信息或与其它不属于正常逻辑的输出内容,写入到标准错误,默认情况下,写到cerr的数据是不缓冲的;错误信息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示;可以通过” 2> ”方式重定向输出到指定文件中;cerr通常用于输出错误信息或其它不属于程序正常逻辑的输出内容。

(6)、clog:一个ostream对象,标准错误流,关联到标准错误;与cerr区别:cerr和clog都是标准错误流,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息默认会存放在缓冲区,缓冲区满或者遇到endl时才输出;默认情况下,写到clog的数据是被缓冲的。clog通常用于报告程序的执行信息,存入一个日志文件中。

(7)、>>运算符,用来从一个istream对象读取输入数据;

(8)、

(9)、getline函数,从一个给定的istream读取一行数据,存入一个给定的string对象中。

IO库类型和头文件:iostream定义了用于读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型,如下图:

iostream头文件的作用是什么

为了支持使用宽字符的语言,标准库定义了一组类型和对象来操纵wchar_t类型的数据。宽字符版本的类型和函数的名字以一个w开始。例如,wcin、wcout和wcerr是分别对应cin、cout和cerr的宽字符版对象。宽字符版本的类型和对象与其对应的普通char版本的类型定义在同一个头文件中。

测试代码如下:

#include "iostream.hpp"#include // reference: http://www.tutorialspoint.com/cplusplus/cpp_basic_input_output.htmint test_iostream_cout(){char str[] = "Hello C++";std::cout << "Value of str is : " << str << std::endl;return 0;}int test_iostream_cin(){char name[50];std::cout <> name;std::cout << "Your name is: " << name << std::endl;return 0;}int test_iostream_clog(){char str[] = "Unable to read....";std::clog << "Error message : " << str << std::endl;return 0;}int test_iostream_cerr(){char str[] = "Unable to read....";std::cerr << "Error message : " << str << std::endl;return 0;}// reference: https://msdn.microsoft.com/en-us/library/6xwbdak2(v=vs.80).aspxstatic void TestWide(){int i = 0;std::wcout <> i;std::wcerr << L"test for wcerr" << std::endl;std::wclog << L"test for wclog" << std::endl;}int test_iostream_w(){int i = 0;std::cout <> i;std::cerr << "test for cerr" << std::endl;std::clog << "test for clog" << std::endl;TestWide();return 0;}

相关推荐:C++视频教程

以上就是iostream头文件的作用是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1434876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:12:24
下一篇 2025年12月17日 10:12:38

相关推荐

  • c语言如何用scanf输入字符串

    在C语言中,可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串。scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。 本教程操作环境:windows7系统、C++17版本、Dell G3…

    2025年12月17日
    000
  • c++中不能重载的运算符有哪些

    c++中不能重载的运算符有5个:“?:”、“.”、“::”、“sizeof”、“.*” 。 “.”和“::”运算符如果重载,可能会出现混淆;“sizeof”运算符不能重载是因为内部许多指针都依赖它;“.*”运算符引用指向类成员的指针。 本教程操作环境:windows7系统、C++17版本、Dell …

    2025年12月17日
    000
  • C++运算符中不能重载的是哪些

    C++运算符中不能重载的有:1、条件运算符“?:”;2、成员访问运算符“.”;3、域运算符“::”;4、长度运算符“sizeof”;5、成员指针访问运算符“->*”和“.*” 。 相关推荐:《C++视频教程》 重载:让操作符可以有新的语义,而不是更改语法,否则会引起混乱。  重载的部分规则:运…

    2025年12月17日
    000
  • c++中头文件和源文件的区别是什么

    区别:头文件是“.h”文件,提供接口;源文件是“.cpp”文件,提供实现。编译器规定源文件必须包含函数入口,即main函数;而头文件不得包含函数入口,头文件不可以单独编译成一个程序,仅仅包含程序片段或者定义常,变量。 本文操作环境:Windows7系统,Dell G3电脑。 相关推荐:《C++视频教…

    2025年12月17日
    000
  • c++清屏函数是什么

    c++kquote>c++清屏函数是“system(“cls”)”。system()是一个C/C++的函数,功能是发出一个DOS命令;当该函数的参数为“cls”时,表示在DOS上使用cls命令,作用是“清屏”,即清除所有屏幕显示信息。 本教程操作环境:windows7系…

    2025年12月17日
    000
  • vc++和c++之间有什么区别?

    c++kquote>区别:C++是一门编程语言,是全球统一使用的语法标准;而VC++是微软公司的免费C++开发工具,具有集成开发环境,程序员可以在VC++中编写源代码文本,编译打包成CPU可执行的机器程序。 vc++一般指Microsoft Visual C++,是微软公司的免费C++开发工具…

    2025年12月17日
    000
  • c++中=和==的区别有哪些?

    c++kquote>区别:1、“=”是赋值的意思,是赋值运算符;而“==”是相等运算符,用于判断两边是否相等;2、“=”运算符存在强制类型转换,而“==”不存在强制转换。 c++中=和==的区别 1、含义不同: “=”是赋值的意思。 它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个…

    2025年12月17日
    000
  • c++引用和指针的区别是什么?

    区别:1、指针有自己的一块空间,而引用只是一个别名;2、指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能被改变;3、指针可以有多级指针(例**p),而引用至于一级;4、指针和引用使用“++”运算符的意义不一样。 相关推荐:C++视频教程 1、变量 首先最重要的,variable的定义…

    2025年12月17日
    000
  • c++ vector用法是什么

    c++kquote>c++ vector用法是:1、创建vector对象;2、尾部插入数字;3、使用下标访问元素;4、使用迭代器访问元素;5、插入元素;6、)删除元素等等。 在c++中,vector是一个十分有用的容器,c++ vector用法是: 1、基本操作 (1)头文件#include.…

    2025年12月17日
    000
  • c++数组初始化的种类有哪些

    c++kquote>c++数组初始化的种类有:1、整型数组的初始化;2、字符串的初始化;3、数组的默认初始化;4、数组的堆初始化。 c++数组初始化的种类有: 1、整型数组的初始化-栈初始化 //默认初始化int a[5] = {}; //[0, 0, 0, 0, 0]//全部初始化为0int…

    2025年12月17日
    000
  • c++贪吃蛇代码是什么

    c++贪吃蛇代码是【snake_position position[(N-2)*(N-2)+1],void snake_position::initialize(int &j),{x = 1;y = j;}char s[N][N]】。 【相关学习推荐:C视频教程】 分析思路 下面就来讲讲贪吃…

    2025年12月17日
    000
  • C# 中虚方法和抽象方法

    今天在云和学院学了很多,我这次只能先总结一下C#中的虚方法和抽象的运用。 理论: 虚方法: 用virtual修饰的方法叫做虚方法 虚方法可以在子类中通过override关键字来重写 常见的虚方法:ToString() Equals 抽象方法: 抽象类与抽象方法由abstract修饰 abstract…

    2025年12月17日 好文分享
    000
  • C++隐式类型转换是什么?

    C++中隐式类型转换是指:从“构造函数形参类型”到“该类类型”的一个编译器的自动转换。隐式类类型转换是会带来风险的,隐式转换得到类的临时变量,完成操作后就消失了,我们构造了一个完成测试后被丢弃的对象。 C++ 隐式类类型转换 《C++ Primer》中提到: “可以用 单个形参来调用 的构造函数定义…

    2025年12月17日
    000
  • C语言中for语句的执行过程是什么?

    C语言中for语句的执行过程是:1、会先判断条件表达式是否成立,如果条件成立则执行中间循环体,执行完中间循环体后接着执行末尾循环体 ;2、在执行完末尾循环体后对条件表达式再次判断,若条件还成立,则继续重复中间循环体,当条件不成立时则跳出。 C语言中for语句的执行过程是: for语句的一般形式为:f…

    2025年12月17日
    000
  • c语言中switch的用法是什么?

    c语言中switch的用法是:1、switch后面括弧内的【表达式】,ANSI标准允许它为任何类型;2、当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就执行default后面的语句。 c语言中switch的用法是: 功能:switch语句是多分支选择语句.…

    2025年12月17日
    000
  • C语言中 & 是什么意思?

    C语言中&是什么意思? &符号在C语言中有两种意思,一种代表的是取地址符,是单目运算符,作用是获取一个变量的内存地址;而另一种代表的是位运算符,是双目运算符,作用是将两数各对应的二进位相与。 C语言运算符 算术运算符 立即学习“C语言免费学习笔记(深入)”; 用于各类数值运算。包括加…

    2025年12月17日
    000
  • 简述分配器的作用是什么?

    分配器是C++标准库的重要组成部分,作用是:处理容器对内存的分配与释放请求。换句话说,分配器用于封装STL容器在内存管理上的低层细节。 分配器的作用 在C++编程中,分配器(英语:allocator)是C++标准库的重要组成部分。 C++的库中定义了多种被统称为“容器”的数据结构(如链表、集合等),…

    2025年12月17日
    000
  • c源程序中不允许出现空语句吗?

    c源程序中允许出现空语句。空语句是C语言或C++中一种特殊的语句;如果一个语句只有一个分号“;”,则称该语句为空语句。在程序中,空语句主要用来做空循环体。 c源程序中允许出现空语句。 在C语言或C++中,有一种特殊的语句,称为空语句。 在C语言中或C++中,如果一个语句只有一个分号“;”,则称该语句…

    2025年12月17日
    000
  • c++中static关键字的作用是什么?

    作用是:1、修饰函数的局部变量;2、修饰全局函数和全局变量;3、修饰类里面的成员变量;4、修饰类的成员函数。 static作用: 1、修饰函数的局部变量: 特点:有默认值0,只执行一次,运行一开始就开辟了内存,内存放在全局 2、修饰全局函数和全局变量: 立即学习“C++免费学习笔记(深入)”; 特点…

    2025年12月17日
    000
  • 如何区分c# 前台和后台线程

    Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。 …

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信