Unixls命令(不是自己写得,但有可以借鉴的地方)
2017-03-12 16:16
375 查看
get ideas:1.按列排序,可以根据横纵坐标来求下标:int cols = (maxcol - M) / (M + 2) + 1, rows = (n - 1) / cols+ 1;
2.除了用制表符/t外,可以通过补空的方式输出表格
cout << s;
for(int i = 0; i < len-s.length(); i++)
cout << extra;
#include<iostream> #include<string> #include<algorithm> using namespace std; const int maxcol = 60; const int maxn = 100 + 5; string filenames[maxn]; //输出字符串s,长度不足len 时补字符extra void print(const string& s, int len, char extra) { cout << s; for(int i = 0; i < len-s.length(); i++) cout << extra;//extra传值是一个空格 } int main() { int n; while(cin >> n) { int M = 0; for(int i = 0; i < n; i++) { cin >> filenames[i]; M = max(M, (int)filenames[i].length()); //filenames[i].length()是unsigned int 类型,所以要强制转换为int型 } //计算列数cols 和行数rows int cols = (maxcol - M) / (M + 2) + 1, rows = (n - 1) / cols + 1;//无论如何总会有一行 print("", 60, '-'); cout << "\n"; sort(filenames, filenames+n); //排序 for(int r = 0; r < rows; r++) { for(int c = 0; c < cols; c++) { int idx = c * rows + r; if(idx < n) print(filenames[idx], c == cols-1 ? M : M+2, ' '); } cout << "\n"; } } return 0; }
相关文章推荐
- 关于solr指导文档,自己做的翻译(有的地方翻译的不是很准确,但是我觉的可以作为一个指导)
- linuxC第六章实现自己ls上的某些可以优化的地方
- 今天找了好久好久,找到了一个地方,可以自己的BLOG了,
- 如何来写自己的ls命令
- ubuntu 编写自己的ls命令
- ls命令具有一个-r选项,可以递归的列出子目录中的内容。请编写一个具有同样功能的程序。
- 此网站内容还不错, 有可以借鉴的地方http://www.zzci.com
- 自己测试的c#中讲得不是很清楚的地方
- Unix ls命令的实现
- <<探讨linux/unix>>之命令ls
- ubuntu 编写自己的ls命令
- linux:编写自己的ls命令
- 写自己的ls命令
- 关于本科学习GIS的一点感悟,不知道自己该干些什么的学弟学妹们可以借鉴一下……
- vim常用命令总结;方便自己查看,大家可以自己开个帖子,把自己常用的,或者经常忘的贴在上面方便自己的查找(不断补充中)
- poi 和jxl的性能比较,借鉴别人的,本人没有测试过,不过感觉自己可以接收这种解释
- 写自己的ls命令
- 不是放松,而是可以给自己更多的时间
- linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)