2014-12-10 2 views
3

나는 별도의 함수 내에서 입력 파일의 내용을 읽으려고 할 때 나는 화살표로 표시 한 라인에 오류잘못된 형식 인수 C

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)) <<<<<<<< 
    { 

    } 

} 

답변

5

변경하려면 :

void function1(FILE * file_a); 

/// 

    void function1(FILE * file_a) 
    { 

     while(!feof (file_a)) 
     { 

     } 

    } 
+8

와우, 멋진 asker/answerer 사용자 이름. :) –

+0

@NickVeys - 나는 이것을 아주 좋아합니다 - 그리고 낙타의 경우의 차이도 좋습니다. – Hogan

+1

하! 나는 그것을 보지 못했다. – OldProgrammer

5

당신은 유형을 file_a주지 않았다, 그래서 int이 기본값이 시도 :

void function1(FILE* file_a); 

... 

void function1(FILE* file_a) 
{ 
    ... 
+0

또한 "implicite'int'"규칙은 C99 표준 이후 삭제되었습니다. –

1

을 또한, 반환을 추가하지 마십시오 호출하려는 함수의 유형. 함수를 선언/정의 할 때 지정해야합니다 :

if (file_a != NULL){ 

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