' - >'的无效类型参数C

时间:2014-12-10 19:36:12

标签: c types

我一直收到错误

invalid type argument of '->' (have 'int') 
在尝试从单独的函数中读取输入文件的内容时,我用箭头标记的行上的

如果它保存在主程序中,它就可以工作。我意识到它可能与指针有关,但我无法解决它。

#include <stdio.h>
#include <stdlib.h>

void function1(file_a);

int main()
{

   FILE *file_a = fopen("input.txt", "r");

   if (file_a != NULL){

       void function1(file_a);
   }
   else{

   }

}

void function1(file_a)
{

   while(!feof (file_a)) <<<<<<<<
   {

   }

}

3 个答案:

答案 0 :(得分:5)

更改为:

void function1(FILE * file_a);

///

    void function1(FILE * file_a)
    {

       while(!feof (file_a))
       {

       }

    }

答案 1 :(得分:5)

您未向file_a提供类型,因此默认为int,请尝试以下操作:

void function1(FILE* file_a);

...

void function1(FILE* file_a)
{
    ...

答案 2 :(得分:1)

另外,不要添加要调用的函数的返回类型。您只需在声明/定义函数时指定它:

if (file_a != NULL){

       void function1(file_a); // <<< remove "void"
}