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

相关文章

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi