bool ReadFileToArray(char fileName[], char strLine[100][3], int &nArrLen) { //fileName[]存放文件名 strLine[][3]存放结点的二维数组 nArrLen返回二叉树结点个数 FILE *pFile; char str[1000]; //存放读取一行文本的字符串 pFile = fopen(fileName, "r"); if (!pFile) { printf ("二叉树文件读取失败\n"); return false; } //读取文件第一行,判断二叉树标识BinaryTree是否正确 if (fgets (str, 1000, pFile) != NULL) { if (strcmp (str, "BinaryTree\n") == 0) { printf ("打开文件格式错误\n"); fclose (pFile); return false; } } nArrLen = 0; //循环读取结点行数据存入数组,结点总数加1 while (fscanf (pFile, "%c %c %c\n", &strLine[nArrLen][0], &strLine[nArrLen][1], &strLine[nArrLen][2]) != EOF) nArrLen++; fclose (pFile); return true; }
时间: 2024-02-14 12:24:43 浏览: 83
这段代码定义了一个ReadFileToArray函数,函数的作用是从文件中读取二叉树的结点数据,并将其存储到一个二维字符数组中。函数的参数包括文件名fileName、存放结点数据的二维字符数组strLine和结点个数nArrLen。
函数首先打开文件并检查是否成功打开,如果文件打开失败则返回false。然后读取文件的第一行,判断二叉树标识是否正确,如果不正确则返回false。接着进入一个循环,每次读取一行结点数据并存储到二维字符数组中,同时结点个数增加1。最后关闭文件并返回true。
需要注意的是,该函数中的文件操作使用了C标准库函数fopen、fgets和fscanf,需要在代码文件中包含头文件stdio.h。另外,该函数中使用了一个引用类型的参数nArrLen,表示函数执行结束后该参数的值会被修改。
阅读全文