题目其实很简单,答题意思就是从管道读取一组文件名,并且按照字典序排列,但是输入的时候按列先输出,再输出行。而且每一行最多60个字符。而每个文件名所占的宽度为最大文件名的长度加2,除了输出在最右边的文件名的宽度是最大文件名长度之外。编程实现这个功能,这就是Unix系统下ls命令的一部分而已。具体实现如下。
主要学习的技能要点就是如何用偏移位移法来按列输出。如果一个矩阵n行m列,要按照列输出。但是我们知道,编程时候,只能是for(行)在列。所以必须要有一个偏移量来计算这种偏移关系。x = rows * c + r;
words.clear();
cin >> w;
words.push_back(w);
}
sort(words.begin(), words.end());
print("", 60, '-');
cout << endl;
}
cout << endl;
}
}
}
cout << s;
cout << extra;
}
}