您的位置:首页 > 其它

UVa - 1593 Alignment of Code(自定义字符串流)

2016-05-11 11:21 399 查看
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51294

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <iomanip>
#include <cstring>
using namespace std;
/***************************************************************************************************************
题意:输入若干行代码,按照左对齐输出。每列单词之间有一个空格,最后一列单词没空格
学习:
1,getline(cin,s) 和 stringstream 流的只用方法
2,左对齐cout << setiosflags(ios::left);或者右对齐 cout << setiosflags(ios::ight);简单的用法
3,给对齐的数据设置设置对其空间,也就是对齐格式。题中每列单词的最大长度为每一列的对齐空间
用法: cout << setw(length) << s[i][j];
***************************************************************************************************************/

vector<string> s[1005];
int le[185];

int main()
{
memset(le,0,sizeof(le));
string line,buf;
int r=1,c=0;
while(getline(cin,line))
{
stringstream ss(line);
while(ss>>buf){
le[c]=max(le[c],(int)buf.size());
c++;
s[r].push_back(buf);
}
r++;
c=0;
}
cout<<setiosflags(ios::left);
for(int i = 1;i < r;i ++){
for(int j = 0;j < s[i].size()-1;j++)
cout<<setw(le[j]+1)<<s[i][j];
cout<<s[i][s[i].size()-1]<<endl;
}
//vector<Point> ().swap(PointVec); //不知道怎么释放vector的空间,百度了一下不理解,就没用了
line.clear();
buf.clear();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: