在C中打印字符串问题

时间:2010-11-09 15:32:39

标签: c string struct printf

我有这个结构

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

这里是什么问题;

3 个答案:

答案 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);