fgets에 대한 소스 질문이요
활력초
c언어에서도 스트림이 있다고 해서 조사해보다가 지식인에서 소스를 하나 찾았는데요.
이 소스에서 궁금한점이 있습니다.
result.txt란 파일을 읽어서 화면에 출력하는 거잖아요. 3줄부터 하나씩 읽는거잖아요. 5줄까지 읽고요.
한줄씩 읽어서 화면에 출력하는게 맞죠??
그런데 밑에 void getLine()메소드 설명 자세히좀 해주세요. 이 메소드는 왜 필요한거죠?
for ( i = 0; i nLine; i++ ) 반복문이 어떻게 실행되고 있는지 좀 잘 정리가 안됩니다;;
rewind(stream); 이것도 뭔지 모르겠어요; 설명좀 해주세요^-^;
?xml:namespace prefix = o ns = urn:schemas-microsoft-com:office:office /?xml:namespace prefix = o /#include stdio.h
void GetLine(char *buffer, int nLine, FILE *stream);
int main()
{
char lpszBuffer[256];
P class FILE *stream;
int start = 3;
int end = 5;
int i;
stream = fopen(result.txt, rt);
for ( i = start; i = end; i++ )
{
GetLine(lpszBuffer, i, stream);
printf(%s, lpszBuffer);
}
fclose(stream);
return 0;
}
void GetLine(char *buffer, int nLine, FILE *stream)
{
int i;
rewind(stream);
for ( i = 0; i nLine; i++ )
{
fgets(buffer, 256, stream);
}
}
-
두동
다섯 줄만 출력하는 것은
int end = 5;로 되어 있기 때문입니다. -
유미
전 아에 출력을 안하는데욤;;
-
하늘빛눈망울
아~ 감사합니다+_+
-
클
int feof(FILE*); 라는 함수가 있습니다. 넘겨준 파일포인터가 파일의 끝을 가리키면, 다시 말하면 파일 끝까지 읽었다면 1을, 아니면 0을 리턴하는 함수입니다.
while(1) {
if(feof(stream)) break;
// todo
}
이렇게 빠져나오면 되겠죠 -
라임나무
이 소스로 파일이름만 변경해서 해봤는데 딱 5줄까지만 읽어서 화면에 출력하더라고요. 그런데 파일 끝까지 출력하려면 어떻게 해야하죠? nLine을 어떻게 고쳐야하나요? 아니면 다른걸 고쳐야 하나요? (참고로 파일마다 줄길이가 다 달라서 어떻게 해야할지 모르겠습니다ㅠ)
-
은별
rewind()함수는 파일포인터를 파일의 시작으로 옮기는 함수입니다. fseek(FILE*, 0, SEEK_SET);과 같죠.
파일의 처음으로 옮긴 뒤에 nLine 번만큼 한 줄씩 읽으면, 최종적으로 buffer에는 nLine번째의 줄의 내용이 들어가 있습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |
2691678 | C언어 함수 질문이요~!!! | 연보라 | 2025-04-15 |
2691650 | 반복문 | 돋가이 | 2025-04-15 |
2691618 | 링크드리스트 개념 질문이예요 (3) | 맨마루 | 2025-04-15 |
2691592 | 동적할당 이용 배열선언 질문입니다.ㅠㅠ (3) | 허리달 | 2025-04-15 |
2691542 | /=의 용도를 알려주세요 ㅠㅠ! (2) | 아라 | 2025-04-14 |
2691510 | sizeof 연산자 질문입니다 (2) | 종달 | 2025-04-14 |