C++文件流模板:通用数组读写技巧

📅 2026/6/25 11:53:49
C++文件流模板:通用数组读写技巧
template class T void input(T arr[], int n, ifstream in) { for (int i 0; i n; i) { in arr[i]; } }读入作用从文件输入流in中读取n个数据依次存入数组arr。逐点说明template class T声明这是函数模板T代表数组元素的类型调用时编译器会自动根据传入的数组类型推导。参数T arr[]接收任意类型的一维数组。参数ifstream in必须传引用。文件流对象ifstream/ofstream在 C 里是不能拷贝的传值会直接编译报错必须用引用传递。核心逻辑循环n次用in arr[i]逐个读入。之所以能通用是因为运算符原生支持 int、char、double、C 字符串的读取一套模板自动适配所有类型。template class T void output(T arr[], int n, ofstream out) { for (int i 0; i n; i) { if (i ! 0) out ; out arr[i]; } out endl; }写出作用把排序后的数组按格式输出到文件流out中元素间用空格分隔行末无空格末尾换行。逐点说明格式控制是核心第 0 个元素直接输出前面不加空格从第 1 个元素开始先输出空格再输出元素。这样能严格保证「元素间空格、行末无空格」完美匹配 OJ 的格式判定。同样依靠运算符对基础类型的原生支持一套模板兼容所有类型。最后输出endl换行每批数据占一行。