2011-02-16 3 views
0

i fgets를 사용하여 줄 형식 .txt 파일을 읽습니다. 배열을 첫 번째 인수로 전달합니다. 다른 줄은 배열에서 다른 양의 공간을 채 웁니다. 그러나 읽은 행의 정확한 길이를 알고 결정을 내리고 싶습니다. 그것은 가능한가? 자신이 (내가 크기를 지정하지 않고 '세번째'배열을 선언 캔트)하지만 난 라인 읽기의 정확한 크기를 얻을 필요가 그래서 선언 때문에 지금은 (제 3 호)를 sizeof를 요청하는 경우fgets()의 배열 크기

FILE * old; 
old = fopen("m2p1.txt","r"); 
char third[100]; 
fgets(third,sizeof(third),old); 

, 그 분명히 (100) 파일에서 (그것은 enitre 배열에 기입하지 않을 수 있습니다).

가능합니까? 어떻게해야합니까?

답변

6

fgets가 성공하면 버퍼로 문자열을 읽습니다. 길이를 찾으려면 strlen()을 사용하십시오.

char third[100]; 

if(fgets(third,sizeof(third),old) != NULL) { 
    size_t len = strlen(third); 
    .. 
} 
+0

감사합니다. 그것은 매우 간단했다. 그가 바보가되어서 미안 하네. D – confused

+2

그가 당신의 질문에 대답했다면, 그의 대답을 정확하게 표시해야합니다! –