Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ListBox
- mysql
- 별찍기 기초
- 마이크로소프트
- MyTread
- 포트폴리오
- Tipsware
- linux
- MyThread
- 도움말
- SSG
- 정처기 독학
- 충무창업큐브
- 정보처리기사
- 김성엽
- tips강좌
- MFC 예제
- do it c
- 유료강좌
- mfc 실습
- C
- C언어
- win32
- 별찍기
- 핵심 요약
- Time
- 미가공
- MFC
- C++
- 실습
Archives
- Today
- Total
History
[C언어] fgets 함수에 대하여 본문
728x90
반응형
이번 차시에는 fgets 함수에 대해서 정리를 해보겠다.
1. fgets 함수
fgets 함수는 FILE 구조체를 사용하여 파일 입출력 스트림에서 문자열을 가져오는 함수이다.
원형은 아래와 같다.
C++ char *__cdecl fgets(char *_Buffer, int _MaxCount, FILE *_Stream)
첫 번째 매개변수 Buffer는 파일에서 읽은 문자열을 저장할 메모리의 주소를 넘겨주면 된다.
두 번째 매개변수 MaxCount는 Buffer 즉 배열의 크기를 적으면 된다.
세 번째 매개변수 Stream은 파일 포인터를 적으면 된다. 파일 포인터는 FILE 구조체를 사용해서 텍스트 파일을 관리하는 포인터를 말한다.
fgets 함수는 보통 개행(\n) 문자를 만날 때까지 문자열을 읽는 것이 기본이지만 한 줄에 MaxCount 이상의 문자열이 들어온다면 한 줄을 다 읽지 않고 중단할 수도 있다.
2. fgets 함수의 반환값
FILE* p_file = NULL;
char buf[MAX_LENGTH]; //문자열을 읽을 배열
char *p=fgets(buf,MAX_LENGTH,p_file);
fgets 함수는 char* 형식의 반환 형을 가지는데 보통 첫 번째 매개 변수로 전달한 변수의 주소가 반환된다. 위의 코드를 예시로 든다면 buf의 시작 주소를 반환한다는 뜻이다.
그러나 fgets 함수로 파일에서 문자열 읽기를 시도했지만 파일의 끝(EOF)을 만나게 되어 파일을 더 이상 읽지 못하게 된다면 fgets 함수는 NULL을 반환하여 파일 읽기를 중단한다.
아래 예시 코드를 넣었다.
#include<stdio.h>
#pragma warning(disable:4996)
#define MAX_LENGTH 128
int main()
{
char buf[MAX_LENGTH]; //문자열을 읽을 배열
FILE* p_file = NULL; //파일 포인터 선언 및 초기화
if (fopen_s(&p_file,"data.txt","rt")==0){ //파일을 읽기 모드로 열겠다.
while (fgets(buf,MAX_LENGTH,p_file)!=NULL){
//파일을 성공적으로 읽었다면 여기서 작업하면 된다.
}
}
fclose(p_file); //파일을 닫겠다.
return 0;
}
위 코드에서 while문 안에 있는 주석 부분에서 처리하고 싶은 문자열을 처리하면 된다.
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[C++] 템플릿(template)에 대하여 step1 (0) | 2023.05.16 |
---|---|
[C언어] 파일에 저장된 문자열 수정하기 (0) | 2023.04.26 |
[C언어] 텍스트 파일의 내용 출력하기 (0) | 2023.04.26 |
[C언어] 중복 값 없는 max 데이터 찾기 (0) | 2023.04.09 |
strlen 함수에 대하여 (0) | 2023.03.19 |
Comments