fwrite
не выполняет форматированный вывод таким образом, вам необходимо fprintf
:
fprintf (fp, "%d\n", tree->pop);
fwrite
имеет следующий прототип:
size_t fwrite (const void *restrict buff,
size_t sz,
size_t num,
FILE *restrict hndl);
и, поскольку выВы даже не даете тот самый важный четвертый параметр (дескриптор файла) в вашем вызове, он может очень хорошо все, что угодно.
Приличный компилятор должен был предупредить вас об этом.
У вас также есть другая проблема здесь.Каждый раз, когда вы вызываете эту функцию, вы создаете выходной файл заново.Это не хорошо для рекурсивной функции, так как каждый повторяющийся вызов уничтожит уже записанную информацию.
Вы можете открыть файл вне рекурсивной функции и просто использовать * 1021.* это внутри.
Что-то вроде:
static void printTreeRecur (FILE *fp, struct recordNode* tree) {
if (tree == NULL) return;
printTreeRecur (fp, tree->right);
fprintf (fp, "%d\n", tree->pop);
printTreeRecur (fp, tree->left);
}
void printTree (struct recordNode* tree) {
FILE *fp = fopen ("test.txt", "w");
if (fp != NULL) {
printTreeRecur (fp, tree);
fclose(fp);
}
}