题目链接:https://cn.vjudge.net/problem/HDU-6297

题目介绍:一道关于输出格式规范问题

wrong answer代码:

#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
int main()
{
int T;
cin>>T;
int rank;
string str;
int prob;
string Tstr;
while(T--)
{
int n=;
cin>>rank>>str>>prob>>Tstr;
if(Tstr[]=='R')
cin>>n;
printf("%3d|",rank);
int mylen=str.length();
cout<<str;
for(int i=mylen;i<=;i++)
cout<<" ";
printf("|%d|[",prob);
if(Tstr[]=='R')
{
for(int i=;i<=n;i++)
cout<<"X";
for(int i=n;i<=;i++)
cout<<" ";
cout<<"]"<<endl;
}
else
{
int length=Tstr.length();
for(int i=;i<=;i++)
cout<<" ";
if(Tstr[]=='F'&&Tstr[]=='B')
{
length=;
cout<<"AC*";
}
else
cout<<Tstr;
for(int i=length+;i<=;i++)
cout<<" ";
cout<<"]"<<endl; }
}
return ;
}

错误点:

1.识别Tstr字符串是否为“Running"时,只以首字母标记(Tstr[0]=='R'),导致识别资料不足,可以识别“RTE"与”Running",识别混乱,所以改成(Tstr==”Running")

2.与输出样式相比,末尾多输出了一个空格

ac代码:

#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
int main()
{
int T;
cin>>T;
int rank;
string str;
int prob;
string Tstr;
while(T--)
{
int n=;
cin>>rank>>str>>prob>>Tstr;
if(Tstr=="Running")
cin>>n;
printf("%3d|",rank);
int mylen=str.length();
cout<<str;
for(int i=mylen;i<=;i++)
cout<<" ";
printf("|%d|[",prob);
if(Tstr=="Running")
{
for(int i=;i<=n;i++)
cout<<"X";
for(int i=n;i<;i++)
cout<<" ";
cout<<"]"<<endl;
}
else
{
int length=Tstr.length();
for(int i=;i<=;i++)
cout<<" ";
if(Tstr[]=='F'&&Tstr[]=='B')
{
length=;
cout<<"AC*";
}
else
cout<<Tstr;
for(int i=length+;i<;i++)
cout<<" ";
cout<<"]"<<endl;
}
}
return ;
}

接下来,我们来学习一下常用的输出格式:

头文件:#include<iomanip>

以下是一些常用的:

dec 置基数为10 相当于"%d"
hex 置基数为16 相当于"%X"
oct 置基数为8 相当于"%o"
setfill(c) 设填充字符为c
setprecision(n)   设显示小数精度为n位
setw(n) 设域宽为n个字符
setioflags(ios::fixed)   固定的浮点显示
setioflags(ios::scientific) 指数表示
setiosflags(ios::left) 左对齐
setiosflags(ios::right) 右对齐
setiosflags(ios::skipws 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
setiosflags(ios::lowercase) 16进制小写输出
setiosflags(ios::showpoint) 强制显示小数点
setiosflags(ios::showpos)   强制显示符号

代码举例:

 19|qqqqq_University|1001|[XXX       ]
125|quailty_U_2 |1002|[ WA ]
4|quailty_U_3 |1003|[ TLE ]

比如上面的那道题,需要用到输出时每个数据是  右对齐3    左对齐16    4     10

像第一个数据需要右对齐:cout<<right<<setw(3)<<Rank<<"|";

第二个数据需要左对齐:cout<<left<<setw(16)<<name<<"|";

第三个数据左对齐:cout<<left<<setw(4)<<pro<<"|[";

第四个需要分类:

针对下面两个的类型:输出字符串,但字符串是居中的(我们可以这样处理:先输出四个空字符,然后对字符串进行左对齐:cout<<"    "<<setw(6)<<status<<"]"<<endl;

hdu 6297(常用的输出格式总结)的更多相关文章

  1. Hadoop MapReduce常用输入输出格式

    这里介绍MapReduce常用的几种输入输出格式. 三种常用的输入格式:TextInputFormat , SequenceFileInputFormat , KeyValueInputFormat ...

  2. Hadoop学习之常用输入输出格式总结

    目的 总结一下常用的输入输出格式. 输入格式 Hadoop可以处理很多不同种类的输入格式,从一般的文本文件到数据库. 开局一张UML类图,涵盖常用InputFormat类的继承关系与各自的重要方法(已 ...

  3. geoserver 数据图层输出格式

    1.WMS服务请求参数 一般WMS的请求地址如下: http://localhost:8080/geoserver/topp/wms?service=WMS&versi on=1.1.0&am ...

  4. Log4net快速索引参考

    官方项目地址:The Apache log4net project 本文内容仅为相关项参考,不进行具体使用讨论 另转载请注明出处 Log4net快速索引参考 Log4net主要有以下三个部件: log ...

  5. java 日期格式化

    DateFormat DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. SimpleDateFormat SimpleDateFormat 是一个以与 ...

  6. 细说log4j之log4j 1.x

    官网:http://logging.apache.org/log4j/1.2/manual.html 三大组件:loggers,appenders,layouts. LoggersLogger是一个层 ...

  7. Verilog中的$display和$write任务

    $display(p1,p2, …,pn); $write(p1,p2, …,pn); 这两个函数和系统任务的作用都是用来输出信息,即将参数p2到pn按参数p1给定的格式输出.参数p1通常称为:“格式 ...

  8. Verilog的一些系统任务(一)

    $display.$write;$fopen.$fdisplay.$fclose;$strobe $display和$write任务 格式: $display(p1,p2,...pn);     $w ...

  9. Log4j日志框架小记

    人啊,总是在学习中发现不足,不足中学习,学习中成长. 今天来系统记录一下对于常用日志组件的理解.配置.使用. 仅供参考, 错误之处请各路好汉不吝笔墨批评指正. 转载请注明出处 Log4j日志框架是Ap ...

随机推荐

  1. CURD 操作 [1]

    create创建新数据 首先在主目录下创建index.html,与index.php同级,插入以下代码 <meta charset="utf-8"> <form ...

  2. ROS Learning-025 (提高篇-003 A Mobile Base-01) 控制移动平台

    ROS 提高篇 A Mobile Base-01 - 控制移动平台 - 基本知识 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 ...

  3. Mind Map - FreeMind

    FreeMind[1]是一款基于java的免费的脑图(mind mapping)制作与管理软件.FreeMind开发项目组正致力于使其成为一款高效率的工具.FreeMind具有一键“展开/折叠”功能以 ...

  4. centos 6.5安装 redis

    版本:redis-2.8.19.tar.gz 检查下面依赖是否安装,如果没有要先安装,不然会有异常. yum install gcc-c++ yum install -y tcl. .获取安装文件 r ...

  5. Ubuntu jdk安装详细

    安装jdk步骤: 1.首先连接130的ip地址,进去Tools拷贝jdk压缩文件(Tools中已经有下载好的jdk版本,也可自己另行下载) 2.将拷贝好的压缩文件解压 tar -zxvf 压缩文件名 ...

  6. STL--C++中 destory() 和deallocate()以及delete函数的相关性和区别性,destorydeallocate

    这里非常的绕口  需要仔细的来看看: destory(): 显示调用一个对象的析构函数 相当于释放一个对象需要释放的一些动态内存 为下次真正释放对象做准备 deallocate():真正的释放一个内存 ...

  7. 【Java学习】Java泛型详解

    1. 概述 在引入范型之前,Java类型分为原始类型.复杂类型,其中复杂类型分为数组和类.引入范型后,一个复杂类型就可以在细分成更多的类型.例如原先的类型List,现在在细分成List<Obje ...

  8. http respose status code (记)

    1xx - 信息提示这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. · 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.( ...

  9. Glib之主事件循环

    介绍 GLib和GTK+应用的主事件循环管理着所有事件源.这些事件的来源有很多种比如文件描述符(文件.管道或套接字)或超时.新类型的事件源可以通过g_source_attach()函数添加. 为了让多 ...

  10. 【转】php通过curl跨域向asp.net服务器上传文件及参数

    转:http://blog.sina.com.cn/s/blog_13331dce50102vq32.html 这是一个由php通过调用asp.net接口向asp.net服务器post上传文件及参数并 ...