C++ Iostreams用法详解(二)标准输入输出

首先说我们最常用的两个全局对象cin和cout,以下摘自MSDN:

You can then extract values from cin or wcin to read the standard input. The rules for doing so are outlined in the description of the class basic_istream Class. You can also insert values to cout or wcout to write the standard output. The rules for doing so are outlined in the description of the class basic_ostream Class.

可以看出,其中cin是istream的对象,可以从标准输入中提取数据,而cout是 ostream的对象,可以向标准输出中输出数据。

什么是标准输入和标准输出呢?可能对于我们这些90后 来说不是那么容易理解的,毕竟这是字符界面的概念,而我们在开始接触计算机的时候就已经是普遍的 windows图形界面的操作系统了。但是windows操作系统还是为我们提供了一个模拟dos这种字符界面的程序cmd ,让我们大致对这个有一定的了解。而在Linux系统中我们更容易说清楚这个概念:在执行一个shell命令时, 会默认打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标 准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常 输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

这样说比较了解了吧,因为我们 在windows下面写一个win32 控制台应用程序的时候,其实我们的这个程序就是类似于Linux中执行在shell中 的命令,所以这个程序在执行的时候当然可以带有参数(就是main函数的参数int argc和char* argv[]了), 而且有标准输入缓冲区和标准输出缓冲区的概念了。只不过我们在windows下刚开始学习编程语言的时候,总 是会用一些图形界面的IDE(例如VC++6.0就是我的启蒙IDE),所以对这个程序的运行机制并不是很清楚,只 知道摁一下运行按键就自动完成了编译、连接、打开一个cmd并直接运行我们写的这个程序了。

有了标 准输入和输出的概念(最好把他们像Linux里面一样看成是设备文件),接下来就要说一下这个cin和这个cout 到底是怎么完成输入输出机制的了。首先来看一下下面这个例子:

#include <iostream>

#include <string>

using namespace std;

int main()

{

    int j = 0;

    while(++j>0)    for(int i=0;i>0;i++);

    string str;

    cin >> str;

    cout << str << endl;

    system("pause");

}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 界面
, 标准
, 输入输出
, iostream
, 程序
, ostream
, cout 输出流
, linux c++
, 输入
, c++ cin
, c++ cin
, cin
输出
java 输入输出流详解、boost iostreams、英语数词用法详解、英语宾语从句用法详解、条件函数if的用法详解,以便于您获取更多的相关知识。

时间: 2024-09-21 23:02:32

C++ Iostreams用法详解(二)标准输入输出的相关文章

C++ Iostreams用法详解(四)缓冲区

在前面说到过每一个iostream对象都有一个缓冲区,我们称之为流缓冲区,那个这个所谓的流缓冲区是怎 么存在的呢?iostreams中将该流缓冲区抽象为一个类,即streambuf类. 每个iostream的类都会包含 一个指向streambuf对象的指针,这也就意味着我们可以直接的去访问到这个指针,并向该streambuf对象发送 消息等(但是一般情况下我们并不需要这样做). 既然说我们可以得到这个指针,那isotreams类当然 会提供访问的接口了,这就是const成员函数rdbuf(),它

C++ Iostreams用法详解(三)状态标志位

iostreams中共有四个状态标志位定义在ios_base中,具体如下: namespace std { class ios_base { public: typedef implementation-defined-bitmask-type iostate; static const iostate badbit; static const iostate eofbit; static const iostate failbit; static const iostate goodbit;

C++ Iostreams用法详解(一)整体把握

个人觉得C++的iostream用起来是非常方便的,只需要使用简单的<<和>>运算符就可以方便的 进行各种类型的数据的格式化输入输出.而且C++中的iostream在编译阶段完成输入输出的格式化解析的,比C 中的printf()和scanf()在运行时格式化解析要更加安全和强大.在这个系列中我就来详细的介绍一下C++中各 种输入输出流的用法. 首先来大致了解一下C++中的iostreams,我们用到的所有的相关的内容都会定 义在下面的这些头文件里: <fstream>

React-Native中一些常用组件的用法详解(二)

前言 本文为大家介绍一下React-Native中一些深入些的组件,由于对ES6的语法并没有完全掌握,这里暂时用ES5和ES6混用的语法. ScrollView组件 能够调用移动平台的ScrollView(滚动视图)的组件,同时还集成了触摸锁定的"响应者"系统. 注意一定要给scrollview一个高度,或者是他父级的高度. 常用方法 onScrollBeginDrag:开始拖拽的时候; onScrollEndDrag:结束拖拽的时候; onMomentumScrollBegin:开始

php9个超全局变量的用法详解(二)

今天来讲一下$_GET()与$_POST(). 其实很容易理解,根据表面意思就可以看得出来,是获得post与get表单的数据,其实也正是如此,来点专业的话来讲, $_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值. $_GET 变量用于收集来自 method="get" 的表单中的值.从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符).好,看个例子,上简单登录界面的代码: 登

Mysql之SQL Mode用法详解_Mysql

一.Mysql SQL Mode简介 通常来说MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器操作进行量身定制以满足自己的需求.这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查.这样,就能在众多不同的环境下.与其他数据库服务器一起更容易地使用MySQL.可以使用"--sql-mode="modes""选项,通过启动mysqld来设置默认的SQL模式.而从MySQL 4.

java synchronized用法详解_java

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行.另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块. 二.然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块.

C++中auto_ptr智能指针的用法详解_C 语言

智能指针(auto_ptr) 这个名字听起来很酷是不是?其实auto_ptr 只是C++标准库提供的一个类模板,它与传统的new/delete控制内存相比有一定优势,但也有其局限.本文总结的8个问题足以涵盖auto_ptr的大部分内容. auto_ptr是什么? auto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同时被分给两个拥有者.当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥有

简单介绍OpenSSL用法详解

OpenSSL用法详解   OpenSSL:          组件:libcrypto,libssl                   openssl          openssl                 众多子命令,可分为三类:                 标准命令                 消息摘要命令(dgst子命令)                 加密命令(enc子命令)                     标准命令:enc,ca,reeq,genrsa-