fgets , atoi , fread 함수
(1) fgets
※ 역할
스트림에서 문자열을 받는역할을 하는 함수이며, 문자열을 받아 (num - 1) 개의 문자를 입력 받을 떄 까지나,
개행 문자(\n) 또는 파일 끝에 도달할 때 까지 입력받아서 C형식의 문자열로 저장한다.
※ 특징
- 파일 끝이나 개행 문자까지 읽음.
- 라인 끝(CR/LF)을 읽으면 개행 문자 '\n'으로 변환
- string 끝에 NULL 문자를 추가함
※ 함수의 구조 및 설명
char
*
fgets
(
char
*string,
int
n,
FILE
*stream );
- string : 파일 데이터를 읽어서 저장할 버퍼의 포인터를 의미
- n : 읽을 최대 문자의 수 +1, 읽은 문자열의 끝에 NULL 추가
- stream : 개방된 FILE 구조체의 포인터
- return 값 : 읽은 string의 포인터, 더 읽을 파일이 없거나 에러 출력시 NULL 포인터
(2) atoi
※ 역할
- 문자열을 long 형 정수로 변환시켜주는 함수
※ 특징
- "+","-", 숫자가 아니면 변환이 이루어지지 않음
- 문자열이 공백 문자로만 이루어져 있어도 변환이 이루어지지 않음
※ 함수의 구조 및 설명
int atoi (const char* str);
- 파라미터 : 문자열
- return 값 : long 형 정수로 변환된 값 ("1000" 이라는 문자열을 파라미터로 전달하면 1000 의 long형 정수가 반환됨)
(3) fread
※ 역할
스트림에서 데이터 블록을 읽어옴
※ 특징
- 스트림에서 count 개의 원소를 가지는 배열을 읽음, 원소의 크기는 size 바이트이며 ptr이 가리키는 배열에 넣게됨
- 스트림의 위치 표시자는 읽어들인 바이트 수 만큼 증가
※ 함수의 구조 및 설명
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
- ptr : size * count 의 크기를 가지는 배열을 가리키는 포인터
- size : 읽어들일 원소의 크기로 단위는 바이트
- count : 읽어들일 원소들의 개수로 각 원소의 크기는 size 바이트
- stream 데이터를 입력받을 스트림의 FILE 객체를 가리키는 포인터
- return 값 : 지정한 원소의 개수 만큼 읽어 들였다면 읽어들인 원소의 개수가 size_t 형으로 반환됨