模拟打印文件树,难点在文件夹的开闭,如果仅仅将子文件缩进,则问题很简单,递归即可,题目要求显示文件夹的开闭(用'|'),所以直接递归打印不能解决(因为可能需要在前面打印'|'),这里我选择将需要打印的所有符号保存在一个缓冲区char型数组里,修改缓冲区再打印缓冲区
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <vector>
#include <queue>
using namespace std;
#define MAX_NODE 200
#define MAX_ROW 12
#define MAX_COL 200
/*
|_#/usr[24]
|_*mark[17]
| |_hw.c[3]
| |_*course[13]
| |_aa.txt[12]
|_*alex[6]
|_hw.c[5]
*/
struct Node
{
string name;
size_t size;
bool isDir;
int printRow;
Node* parent;
vector<Node*> c