`

c++ IO标志

阅读更多

1. 操纵算子
这里已经添加了一个新的元素:一个称作 e n d l的操纵算子。一个操纵算子作用于流上,这
种情况下,插入一新行并清空流(消除所有存储在内部流缓冲区里的还没有输出的字符) 。也
可以只清空流:
c o u t < < f l u s h;
另外有一个基本的操纵算子把基数变为o c t (八进制),d e c (十进制)或h e x (十六进制):
c o u t < < h e x < < " 0 x " < < i < < e n d l;
有一个用于提取的操纵算子“跳过”空格:
c i n > > w s;

 

C++ I/O 标志

C++为标准输入和输出定义了一些格式标志, 它可以通过flags(), setf(), 和 unsetf() 三个函数来控制. 例如,

    cout.setf(ios::left);

对所有指向cout的输出进行左对齐调整.

 

标志 功能
boolalpha 可以使用单词"true"和"false"进行输入/输出的布尔值.
dec 用十进制格式显示后面的数值.
fixed 用正常的记数方法显示浮点数(与科学计数法相对应).
hex 用十六进制格式显示后面的数值.
internal 将填充字符回到符号和数值之间.
left 输出调整为左对齐.
oct 用八进制格式显示后面的数值.
right 输出调整为右对齐.
scientific 用科学记数法显示浮点数.
showbase 输出时显示所有数值的基数.
showpoint 显示小数点和额外的零,即使不需要.
showpos 在非负数值前面显示"+".
skipws 当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines).
unitbuf 在每次插入以后,清空缓冲区.
uppercase 以大写的形式显示科学记数法中的"e"和十六进制格式的"x".

也可以通过使用下面的操作符,不直接操作标志。大多数的编程人员都都熟悉endl操作符,它给我们一个使用操作符的启示。例如:当我们设置dec标志时, 我们可以使用下面的命令:

  cout << dec;

 

<iostream>中定义的操作符 操作符 描述 输入 输出
boolalpha 启用boolalpha标志 X X
dec 启用dec标志 X X
endl 输出换行标示,并清空缓冲区 X
ends 输出空字符 X
fixed 启用fixed标志 X
flush 清空流 X
hex 启用 hex 标志 X X
internal 启用 internal 标志 X
left 启用 left 标志 X
noboolalpha 关闭boolalpha 标志 X X
noshowbase 关闭showbase 标志 X
noshowpoint 关闭showpoint 标志 X
noshowpos 关闭showpos 标志 X
noskipws 关闭skipws 标志 X
nounitbuf 关闭unitbuf 标志 X
nouppercase 关闭uppercase 标志 X
oct 启用 oct 标志 X X
right 启用 right 标志 X
scientific 启用 scientific 标志 X
showbase 启用 showbase 标志 X
showpoint 启用 showpoint 标志 X
showpos 启用 showpos 标志 X
skipws 启用 skipws 标志 X
unitbuf 启用 unitbuf 标志 X
uppercase 启用 uppercase 标志 X
ws 跳过所有前导空白字符 X
在<iomanip>中定义的操作符 操作符 描述 输入 输出
resetiosflags( long f ) 关闭被指定为f的标志 X X
setbase( int base ) 设置数值的基本数为base X
setfill( int ch ) 设置填充字符为ch X
setiosflags( long f ) 启用指定为f的标志 X X
setprecision( int p ) 设置数值的精度 X
setw( int w ) 设置域宽度为w X
分享到:
评论
3 楼 七猫 2010-02-01  
还是printf系列的控制起来方便些。
2 楼 mikeandmore 2010-02-01  
zzsczz 写道
这是标准库的规范么?

哪些是必须实现的? 哪些是推荐实现的?

各个编译器在每个平台上都是一样的效果么?

都是标准规定的。
1 楼 zzsczz 2010-02-01  
这是标准库的规范么?

哪些是必须实现的? 哪些是推荐实现的?

各个编译器在每个平台上都是一样的效果么?

相关推荐

    C++IO流库

    - **其它文件操作函数**:包括`tellg()`、`tellp()`获取当前读写位置,`clear()`清除错误标志,`eof()`检查文件是否结束等。 6. **字符串流** C++的`std::istringstream`、`std::ostringstream`和`std::string...

    C++标准IO文档

    ### C++标准IO知识点详解 #### 一、C++标准IO概述 C++标准库提供了丰富的输入输出(IO)功能,这些功能通过一系列面向对象的API实现,支持对各种设备如控制台、文件等的读写操作。这些API还包括一些特殊类型,允许...

    C++风格的几种IO流

    C++编程语言中的IO流是进行输入输出操作的一种机制,包括了对标准输入输出设备如文件、内存、串行设备的读写操作。C++支持两种风格的IO流:C风格和C++风格。C++风格的IO流在使用中更加灵活和方便,它通过一系列的类...

    《C++ Primer》学习笔记(25)IO库

    - IO操作很容易出现错误,C++ IO库为此提供了一系列方法和标志位来检查和控制流的状态。 #### 三、IO状态检查 在进行IO操作时,需要时刻关注流的状态,以确保程序的健壮性和正确性。C++ IO库提供了一些用于检查流...

    The C IO Streams and Locales_clocales_

    3. **ios和ios_base**: 这些类定义了流的状态标志,如是否发生错误、是否遇到EOF,以及格式控制信息,如填充字符、精度、宽度等。通过它们,程序员可以精确控制输入输出的格式。 4. **Locales**: C++的区域设置...

    C++ IO 操作格式

    C++的IO操作是编程中不可或缺的一部分,它允许程序与用户进行数据交互。在C++中,IO操作主要涉及标准库中的`iostream`和相关的头文件,如`iomanip`。`iomanip`头文件提供了操纵符(manipulator),这是一种特殊类型...

    深入详解C++ IO

    ### 深入详解C++ IO 在C++编程语言中,输入输出(I/O)是必不可少的一部分,它为程序提供了与外部世界交互的方式。本文将深入探讨C++中的I/O机制,帮助读者掌握其核心概念和技术细节。 #### 1. 基本概念与流对象 ...

    C++ IO

    ### C++ IO流系统详解 #### 一、引言 C++ 在继承 C 语言的基础之上,不仅保留了 printf 和 scanf 这样的 I/O 函数,还进一步发展出了一套更为强大、灵活且类型安全的 I/O 系统——基于流类库的 I/O 机制。这一章节...

    C++Primer第五版 第8章 IO库(练习解答)

    C++ Primer第五版是C++编程领域的一本经典教材,其中第八章主要讲解了C++的IO库,这是C++进行输入输出操作的核心部分。在这一章中,读者将了解到如何利用C++标准库提供的流类进行数据的读写,包括基本的文件I/O、...

    重叠IO 完成例程 代码

    在Windows API中,通常使用`CreateFile`函数创建一个支持重叠I/O操作的句柄,并设置`FILE_FLAG_OVERLAPPED`标志。然后,可以使用`ReadFile`或`WriteFile`等函数进行重叠读写,这些函数可以是非阻塞的,即使数据传输...

    android direct IO.rar

    在Android中,使用JNI(Java Native Interface)可以方便地实现对底层C/C++代码的调用,以利用Direct IO的功能。JNI允许Java代码调用C/C++函数,这对于处理低级硬件操作或性能关键的任务非常有用。在本例中,我们...

    FAT文件系统磁盘IO读取(vc实现)

    2. **遍历FAT表**:从起始簇号开始,按照FAT表中的指示,连续读取下一个簇,直到遇到“结束簇”标志或文件结束。 3. **读取扇区**:确定每个簇所对应的物理扇区,然后调用`DeviceIoControl`读取这些扇区的数据。 4. ...

    对 c、c++ 、Win32、MFC的IO简单总结

    在C语言中,文件操作是通过标准输入/输出库stdio.h中的函数来实现的。这些函数包括了对文件的打开、关闭、读取、写入和定位等基本操作。...根据项目需求和开发者的偏好,可以选择适合的IO操作方式。

    C++定时器实现

    `stop`方法会设置`expired`标志并通知条件变量,使得等待的线程可以立即返回。 当然,还可以使用第三方库如Boost或Asio来实现更高级的定时器功能。例如,Boost库提供了`boost::asio::deadline_timer`,它基于I/O...

    精选_基于C++11的轻量级网络框架-实现大并发网络IO_源码打包

    1. **非阻塞I/O**:使用`O_NONBLOCK`标志设置文件描述符为非阻塞模式,避免因等待I/O完成而阻塞线程。 2. **I/O多路复用**:通过Epoll的`epoll_wait`函数监控多个文件描述符,当有事件发生时,只唤醒处理线程,提高...

    标准C++输入输出流与本地化

    IO流的结构章节,则深入探讨了流的内部构成,例如缓冲机制、状态标志以及如何组织复杂的流结构。到了高级用法章节,内容覆盖了格式化输入输出、异常处理和国际化输入输出等方面,进一步扩展了程序员对于流操作的理解...

    多线程,重叠IO,异步读写 命名通道服务器源码

    在本代码中,`FILE_FLAG_OVERLAPPED`标志被用于`CreateNamedPipe`,使管道支持重叠I/O。同时,`OVERLAPPED`结构体用于保存与异步操作相关的信息,包括一个事件句柄,当I/O操作完成时,系统会触发该事件。 异步读写...

    第8章 IO库1

    第八章主要介绍了C++的IO库,这是一个用于处理输入输出操作的标准库。C语言并不直接处理I/O,而是通过一系列预定义的类型来实现,这些类型位于标准库中。在C++中,这些类型支持从设备读取数据以及向设备写入数据。 ...

    c++输入输出的格式控制符

    C++中还提供了一组预定义的格式标志,它们可以通过`ios::`前缀访问,并且可以组合使用,具体如下: - `ios::left`:左对齐。 - `ios::right`:右对齐。 - `ios::internal`:数值值对齐,符号对齐。 - `ios::dec`:...

Global site tag (gtag.js) - Google Analytics