关闭

学习笔记_setfill和setw

348人阅读 评论(0) 收藏 举报
分类:

1、setw()接受整数参数,设置输出域宽.

2、setfill()接受字符参数,用于指定当输出域宽大于实际输出域宽时所需的填充字符.

Time.h
#ifndef TIME_H
#define TIME_H

//Time class definition
class Time
{
public:
    Time();
    void setTime(int, int, int);  //set hour, minute and second
    void printtUniversal();       //print time in universal-time format
    void printStandard();         //print time in standard-time format
private:
    int hour;
    int minute;
    int second;
};

Time.cpp
#include <iostream>
#include <iomanip>
#include "Time.h"
using namespace std;

Time::Time()
{
    hour = minute = second = 0;
}

void Time::setTime(int h, int m, int s)
{
    hour = (h >= 0 && h <= 24) ? h : 0;
    minute = (minute >= 0 && minute <= 60) ? minute : 0;
    second = (second >= 0 && second <= 60) ? second : 0;
}

void Time::printtUniversal()
{
    cout << setfill('0') << setw(2) << hour << ":" << setw(2) << minute << ":" << setw(2) << second;
}

void Time::printStandard()
{
    cout << ((hour == 12 || hour == 0) ? 12 : hour % 12) << ":" << setfill('0') << setw(2) << minute << ":" << setw(2) << second << (hour < 12 ? " AM" : " PM");
}

Main.cpp
#include <iostream>
#include"Time.h">
using namespace std;

int main()
{
    Time t;
    cout << "The initial universal time is ";
    t.printtUniversal();
    cout << "\nThe initial standard time is ";
    t.printStandard();

    t.setTime(13, 27, 6);

    cout << "\n\nUniversal time after setTime is ";
    t.printtUniversal();
    cout << "\nStandard time after setTime is ";
    t.printStandard();

    t.setTime(99, 99, 99);

    cout << "\n\nAfter attemping invalid settings:" << "\nUniversal time: ";
    t.printtUniversal();
    cout << "\nStandard time: ";
    t.printStandard();
    cout << endl;
    system("pause");
}
结果
The initial universal time is 00:00:00
The initial standard time is 12:00:00
Universal time after setTime is 13:27:06
Standard time after setTime is 1:27:06 PM
After attempting invalid settings:
Universal time: 00:00:00
Standard time: 12:00:00 AM

通过结果可以看出,在printUniversal和printStandard中,使用setfill设置填充字符为‘0’,因此当minute为2时,将会显示02。若实际输出填满了setw指定的域宽,那么就不会显示填充字符。

note:一旦setfill指定了填充字符,该字符将应用在后续值的显示中。也就是说,setfill是一个“黏性”设置,但setw是一个“非粘性”设置,其只对紧接着显示的值起作用。对于粘性设置,当不需要时应恢复,否则可能会出现格式错误。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

setw()函数使用

在C++中,setw(int n)用来控制输出间隔。例如:cout则在屏幕显示s        a //s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超...
  • zhangzhengyuan123123
  • zhangzhengyuan123123
  • 2014-08-08 22:08
  • 1444

输出格式控制setfill和setw使用

 本文转自:http://blog.csdn.net/cjc211322/article/details/25463621 注意问题: 所使用的头文件为iomanip.h 例如: cout 则在屏幕显示 s        a  /...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2015-05-13 20:42
  • 2695

opencv学习系列:使用自定义类实现视频和帧处理的接口

main文件 // 程序摘要:视频读取及自定义视频类处理 /* 读取视频序列; 自定义视频处理类VideoProcessor:可以处理视频和独立的图像序列,前者用以前的帧处理函数(回调函数process), 后者用自定义的帧处理类(FrameProcessor类接口即对象->...
  • xuluohongshang
  • xuluohongshang
  • 2017-09-03 09:24
  • 264

setw()函数使用

在C++中,setw(int n)用来控制输出间隔。例如:cout则在屏幕显示s        a //s与a之间有7个空格,setw()只对其后面紧跟的输出产生作用,如上例中,表示'a'共占8个位置,不足的用空格填充。若输入的内容超...
  • zhangzhengyuan123123
  • zhangzhengyuan123123
  • 2014-08-08 22:08
  • 1444

setw的使用(控制输出)

导言: setw的功能是对要输出的进行区域操作,如对两个数输出的时候, ,图中的是右对齐的,有十个空间。相当于printf("%2.lf\n")一样对浮点数输出的样子。 定义和用法:头文件:#include set可以设置控制的宽度,输出的是靠左还是靠右,默认的是靠右,宽度...
  • xiaolonggezte
  • xiaolonggezte
  • 2016-08-10 17:55
  • 806

Linux学习笔记之——起始篇

摘要:学习笔记目录、方便以后回顾、没有什么捷径可走、不断的记录、总结、练习、coding、coding。
  • chenghuaying
  • chenghuaying
  • 2014-03-31 16:47
  • 4582

在计算机学习,善用“笔记软件”

为知笔记 Linux 版 2015-12-03 产品更新 提示:软件的名称由wiznote修改为WizNote,在终端命令行下需要使用WizNote来打开程序。 更新日志: 2.3.2 版本(2015-12-03) 字体颜色和背景色新增记住上次使用色值功能优化拖拽笔记和文件夹的样式修复某些情况下...
  • Lina_ACM
  • Lina_ACM
  • 2016-08-03 10:41
  • 815

斯坦福机器学习网易公开课笔记1

之前在coursera上看了Andrew Ng的机器学习课程,那个课程比较简明,适合对机器学习有一个整体的印象,但是很多细节的内容和推导都忽略了。现在想要了解机器学习更多,所以开始看Andrew Ng在网易公开课上的机器学习课程,并对每一讲整理笔记,以促使自己更好的理解和记忆。   第...
  • zhonglj0314
  • zhonglj0314
  • 2017-02-20 09:57
  • 539

《Java JDK8学习笔记》读书笔记(4)

第4章 认识对象 学习目标  区分基本类型与对象类型  了解对象与引用的关系  从打包器认识对象  以对象观点看待数组  认识字符串的特性
  • mouyong
  • mouyong
  • 2016-04-18 20:10
  • 4447

Angularjs 学习笔记(一)基础

1.简介: Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏览器,与 jQuery 配合良好。2 . AngularJS...
  • qq_25178609
  • qq_25178609
  • 2016-10-02 16:13
  • 483
    个人资料
    • 访问:37522次
    • 积分:519
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:16篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论