前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C++】输入输出流 ⑦ ( cout 标准输出流对象 | cout.write 函数 | cout.width / cout.fill / cout.setf 函数 )

【C++】输入输出流 ⑦ ( cout 标准输出流对象 | cout.write 函数 | cout.width / cout.fill / cout.setf 函数 )

作者头像
韩曙亮
发布2023-12-11 10:33:15
发布2023-12-11 10:33:15
41400
代码可运行
举报
运行总次数:0
代码可运行
文章目录
  • 一、cout.write 函数
    • 1、cout.write 函数简介
    • 2、代码示例 - cout.write 函数
  • 二、cout.width / cout.fill / cout.setf 函数
    • 1、函数简介
    • 2、代码示例

一、cout.write 函数


1、cout.write 函数简介

cout.write(const char* s, int n) 成员函数 : 该函数将一个 字符数组 的 前 n 个字符 , 写入流中 ; 如 : cout.write("Hello, world!", 6) 将在控制台输出 “Hello,” ;

函数原型如下 : ptr 参数 是指向 要写入的 字符数组 的指针 , num 参数是要写入的字符数 ;

代码语言:javascript
代码运行次数:0
运行
复制
ostream& write (const char* ptr, int num);

特别注意 :

cout.write() 函数 不会添加任何 EOF 终止字符 , 其作用仅仅是把内存中的内容原封不动地写入到输出流中 ;

当使用 cout.write() 函数时 , 必须确保写入的字符数量不超过数组的大小 , 以防止越界错误 ;

cout.write() 函数通常用于低级 I/O 操作 , 如 : 当需要直接处理字节流时 ; 在 高级文本处理中 , 使用流插入运算符 << 通常更为方便和安全 ;

2、代码示例 - cout.write 函数

执行 cout.write("TomAndJerry", 7); 代码 , 会输出 “TomAndJerry” 字符串的 前 7 个字符 , 命令行输出结果为 “TomAndJ” ;

代码示例 :

代码语言:javascript
代码运行次数:0
运行
复制
#include "iostream"
using namespace std;

int main() {

	// 输出 "Tom" 字符串
	cout << "Tom" << endl;

	// 输出字符串
	cout.write("TomAndJerry", 7);

	// 输出回车换行
	cout << endl;

	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

执行结果 :

代码语言:javascript
代码运行次数:0
运行
复制
Tom
TomAndJ
请按任意键继续. . .

二、cout.width / cout.fill / cout.setf 函数


1、函数简介

cout.width / cout.fill / cout.setf 函数简介 :

  • width(int n) 成员函数 : 该函数设置下一个输出或输入操作的宽度 ; 它通常与其它格式函数一起使用 , 如 setw ; 如 : cout << setw(5) << 123 将在控制台输出 “123” , 前面的空格使得总宽度为5 ;
  • fill(char c) 成员函数 : 该函数设置用于 填充额外空间 的字符 ; 如 : cout << setfill('*') << setw(5) << 123 将在控制台输出 “123” , 因为 * 被用作填充字符 ;
  • setf(fmtflags f, fmtflags val) 成员函数 : 该函数设置格式标志 f , 可以选择性地设置第二个参数 val ; 如 : cout.setf(ios::showbase) 开启显示数值的基数 ;

2、代码示例

输出字符串长度为 8 字节 , 如果输出的字符不够 8 个 , 使用 * 填充 , 设置显示基准数据 , 如果是 十六进制 显示 0x 格式样式 ,

设置 * 填充效果 , 填充到 0x 和 数字之间 ,

命令行输出 123 , 使用 十六进制显示 ;

123 对应的十六进制为 0x7b ,

代码示例 :

代码语言:javascript
代码运行次数:0
运行
复制
#include "iostream"
using namespace std;

int main() {

	// 输出字符串长度为 8 字节
	cout.width(8);

	// 如果输出的字符不够 8 个 , 使用 * 填充
	cout.fill('*');

	// 设置显示基准数据 , 如果是 十六进制 显示 0x 格式样式
	cout.setf(ios::showbase);

	// 设置 * 填充效果 , 填充到 0x 和 数字之间
	cout.setf(ios::internal);

	// 命令行输出 123 , 十六进制显示
	cout << hex << 123 << endl;

	
	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

执行结果 :

代码语言:javascript
代码运行次数:0
运行
复制
0x****7b
请按任意键继续. . .
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、cout.write 函数
    • 1、cout.write 函数简介
    • 2、代码示例 - cout.write 函数
  • 二、cout.width / cout.fill / cout.setf 函数
    • 1、函数简介
    • 2、代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档