2017-05-12 1 views
-2

이 함수를 사용하여 getLine() 함수로 사용자 입력 (stdin)을 읽습니다. 이 함수는 사용자 입력과 함께 char *를 반환합니다. 이 세그먼트는 다음과 같습니다.C에서 getLine()을 사용하여 stdin을 읽는 중 오류가 발생했습니다.

char * rline(void) 
{ 

char *line; 
size_t buff = 0; 
char * getLine(&line, &buff, stdin); 
return line; 

} 

그러나 실행하면이 오류가 표시되고 컴파일되지 않습니다.

error: expected declaration specifiers or '...' before '&' token  

나는 주위를 둘러 보았다하지만 확실히 이런 일이 왜, 내 구문이 올바른지하거나 논리적 오류가 알아낼 수 없습니다?

+0

C : https://www.programiz.com/c-programming/c-functions에서 함수를 사용하는 법을 읽으십시오. – Abend

+0

@Abend 감사합니다.하지만 함수를 호출하는 것에 익숙합니다. 어떻게 생각합니까? 이거 불러? –

+0

@DavidBowling POSIX를 사용하지 않지만 감사합니다. 나는 getline()과 getLine()을 시도했지만, 둘 다 같은 오류를 반환합니다 : 정의되지 않은 참조. –

답변

0

당신은 그 기능을 잘못 호출하고 있습니다. char *에는 함수 호출 전에 아무 것도 할 필요가 없으며 함수 선언에서만 필요합니다. 적절한 함수 선언의

예 : 적절한 함수 호출의

char * getLine(char *, int, int); 

예 :

getLine(&line, &buff, stdin); 

그런데, 나는 버퍼의 크기는 당신이 값을 설정하여, 선택하는 것입니다 생각 두 번째 매개 변수.

+0

그러나 내 머리글에 함수를 선언 한 후 호출하려고하면 "정의되지 않은 참조 getLine()"오류가 발생합니다. 그 이유는 무엇입니까? –

+0

@JohnStawket'getLine'이라는 표준 함수가 없습니다 –

+0

@ErikW 없습니까? [이것은 에 포함 된 getline (3)의 맨 페이지입니다 (https://linux.die.net/man/3/getline). 나는 getline()과 getLine()을 시도했지만 둘 다 같은 오류를 준다 : 정의되지 않은 참조. –

관련 문제