我有这个结构
typedef struct tree_node_s{
char word[20];
struct tree_node_s *leftp,*rightp;
}fyllo
我想在文件中使用fprintf打印单词 问题在于PROBLINE
void print_inorder(fyllo *riza,FILE *outp){
if (riza==NULL) return ;
print_inorder(riza->leftp,outp);
fprintf("%s",riza->word); //PROBLINE
print_inorder(riza->rightp,outp);
}
即时编译,我遇到了这个问题
tree.c: In function ‘print_inorder’:
tree.c:35: warning: passing argument 1 of ‘fprintf’ from incompatible pointer type
这里是什么问题;
答案 0 :(得分:6)
您错误地致电fprintf
。该函数的声明是
int fprintf(FILE *restrict stream, const char *restrict format, ...);
因此,您应该将FILE指针作为第一个参数(您是否注意到您从未在函数中实际使用过outp
?)。该行应写为
fprintf(outp, "%s", riza->word);
答案 1 :(得分:3)
fprintf
的第一个参数应该是要打印到的FILE*
:
fprintf(outp, "%s", riza->word);
答案 2 :(得分:2)
尝试更改
fprintf("%s",riza->word);
到
fprintf(outp, "%s", riza->word);