c++left right 和 setw() 函数的用法Alignment of Code

2024-02-11 10:48

本文主要是介绍c++left right 和 setw() 函数的用法Alignment of Code,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先先讲一讲这个函数的头文件是#include<iomanip>。

setw(5) -- 设打印可用宽度为5
left -- 打印不足5个字时,输出靠左放,右边填空白,凑足宽度5
例如:
357 打印 出: 357空格空格
如果用 << right <<setw(5)<<357;
357 打印 出:空格空格357, right--靠右放

用left讲道题目吧



You are working in a team that writes Incredibly Customizable Programming Codewriter (ICPC) which
is basically a text editor with bells and whistles. You are working on a module that takes a piece of
code containing some definitions or other tabular information and aligns each column on a fixed vertical
position, while keeping the resulting code as short as possible, making sure that only whitespaces that
are absolutely required stay in the code. So, that the first words on each line are printed at position
p1 = 1; the second words on each line are printed at the minimal possible position p2, such that all first
words end at or before position p2 − 2; the third words on each line are printed at the minimal possible
position p3, such that all second words end at or before position p3 − 2, etc.
For the purpose of this problem, the code consists of multiple lines. Each line consists of one or
more words separated by spaces. Each word can contain uppercase and lowercase Latin letters, all
ASCII punctuation marks, separators, and other non-whitespace ASCII characters (ASCII codes 33 to
126 inclusive). Whitespace consists of space characters (ASCII code 32).
Input
The input file contains one or more lines of the code up to the end of file. All lines (including the last
one) are terminated by a standard end-of-line sequence in the file. Each line contains at least one word,
each word is 1 to 80 characters long (inclusive). Words are separated by one or more spaces. Lines of
the code can have both leading and trailing spaces. Each line in the input file is at most 180 characters
long. There are at most 1000 lines in the input file.
Output
Write to the output file the reformatted, aligned code that consists of the same number of lines, with
the same words in the same order, without trailing and leading spaces, separated by one or more spaces
such that i-th word on each line starts at the same position pi
.
Note for the Sample:
The ‘⊔’ character in the example below denotes a space character in the actual files (ASCII code
32).
Sample Input
start: integer; // begins here
stop: integer; // ends here
s: string;
c: char; // temp



Sample Output
start: integer; // begins here
stop: integer; // ends here
s: string;
c: char; // temp


思路:利用string字符串中不能空格,所以统计每行分成了多少节并进行编号。如第一行有五节,第二行有5节,第三行有两节,第四行有三节,并编号。 之后统计每节中最长的并记录。最后输出的时候每行输出宽度为每节最长的长度+1;因为每行的最后一节后面没有空格,所以可以单独输出。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<iomanip>using namespace std;
int main()
{int maxline[1000];int num[1000];int r,c,i,j;string a[1010][100];string line;memset(maxline,0,sizeof(maxline));memset(num,0,sizeof(num));r=0,c=0;while(getline(cin,line)){stringstream ss(line);while(ss>>a[r][c]){if(a[r][c].length()>maxline[c]){maxline[c]=a[r][c].length();}c++;}num[r++]=c;c=0;}for(i=0;i<r;i++){for(j=0;j<num[i]-1;j++){cout<<left<<setw(maxline[j]+1)<<a[i][j];}cout<<a[i][num[i]-1];printf("\n");}return 0;
}


这篇关于c++left right 和 setw() 函数的用法Alignment of Code的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699590

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent