happy coding

[c] 파일 입출력 함수 본문

self study/언어의 기본부터

[c] 파일 입출력 함수

yeoonii 2022. 11. 27. 20:53
TCPschool 을 보고 정리한 내용입니다.

파일 입출력 함수

C언어에서 인수를 하나만 전달받는 대부분의 입출력 함수는 스트림이 stdin이나 stdout으로 고정되어 있는 함수지만, 입출력 함수 중에서 이름이 f로 시작되는 함수는 입출력 스트림을 사용자가 직접 지정할 수 있는 함수이다. 인수로 FILE 구조체 변수의 포인터를 전달함으로써 ㅎ표준 입출력 장치뿐만 아니라 파일로도 입출력을 진행할 수 있다.

fgetc() 함수

fgetc() 함수는 지정된 스트림으로부터 하나의 문자를 읽어 들이는 함수이며, 읽기에 성공하면 읽은 문자를 반환하고, 파일의 끝에 도달하면 EOF를 반환한다.

#include <stdio.h>
int fgetc(FILE *stream);

fgetc() 함수의 반환값은 int형 변수로 저장해야 한다. 왜냐하면, EOF은 int형 변수이기 때문에, 만약 char형 값이라면 int형 값으로 자동 변환되는데 이때 만약 그 변수가 signed char형이라면 제대로 변화되므로 별문제 발생하지 않지만, unsigned char형이라면 변환이 제대로 되지 않아 while문이 무한히 반복되기 때문이다.

fputc() 함수

fputc() 함수는 지정된 스트림에 문자 하나를 출력(저장)하는 함수이며, 저장에 성공하면 저장한 문자를 반환하고, 저장에 실패하면 EOF를 반환한다.

#include <stdio.h>
int fputc(int c, FILE *stream);	//함수의 원형

fgets() 함수

fgets() 함수는 지정된 스트림으로부터 문자열을 읽어 들이는 함수이다.

#include <stdio.h>
char *fgets(char * restrict s, int n, FILE * restrict stream)	//함수의 원형

이 함수의 첫 번째 인수는 읽은 문자열이 저장될 주소이며, 세 번째 인수는 스트림을 결정할 FILE 구조체 변수의 포인터이다. 두 번째 인수로 전달받은 최대 입력 문자 개수보다 하나 적은 수의 문자를 읽거나, 파일의 끝에 도달할 때까지 문자를 읽는다. 이 함수는 읽기에 성공하면 읽은 문자열이 저장된 주소를 반환하고, 파일의 끝에 도달하거나 읽기에 실패하면 NULL을 반환한다.

fgets() 함수는 문자를 읽어 들이는 도중에 개행 문자('\n')를 만나게 되면 곧바로 읽기를 종료한다. 그리고 지금까지 읽어 들인 문자들이 C언어에서 문자열로 인식되도록 맨 마지막에 널 문자('\0')를 자동으로 추가해 준다.

fputs() 함수

fputs() 함수는 지정된 스트림에 문자열을 출력(저장)하는 함수이다.

#include <stdio.h>
int fputs(const char * restrict s, FILE * restrict stream);	//함수의 원형

이 함수의 첫 번째 인수는 쓰고자 하는 문자열의 주소이며, 두 번째 인수는 스트림을 결정할 FILE 구조체 변수의 포인터이다. 인수로 전달된 스트림이 stdout이면 모니터에 문자열을 출력하고, 파일이면 문자열을 해당 파일에 저장한다. 이 함수는 쓰기(저장)에 성공하면 음수가 아닌 값을 반환하고, 저장에 실패하면 EOF를 반환한다.

fscanf() 함수

fscanf() 함수는 지정된 스트림으로부터 다양한 서식 변환 문자를 이용하여 문자열을 읽어 들이는 함수이다.

#include <stdio.h>
int fscanf(FILE * restrict stream, const char * restrict format, ...);	//함수의 원형

이 함수의 첫 번째 인수는 스트림을 결정할 FILE 구조체 변수의 포인터이며, 두 번째 인수는 읽어 들일 문자열의 서식이다. 이 함수는 읽기에 성공하면 읽어 들인 변수의 개수를 반환하고, 실패하면 EOF를 반환한다.

fprintf() 함수

fprintf() 함수는 지정된 스트림에 다야한 서식 변환 문자를 이용하여 문자열을 출력(저장)하는 함수이다.

#include <stdio.h>
int fprintf(FILE * restrict stream, const char * restrict format, ...);	//함수의 원형

이 함수의 첫 번째 인수는 스트림을 결정할 FILE 구조체 변수의 포인터이며, 두 번째 인수는 출력할 문자열의 서식이다. 이 함수는 쓰기(저장)에 성공하면 저장한 문자열의 크기를 바이트 단위로 반환하고, 실패하면 음수를 반환한다.

'self study > 언어의 기본부터' 카테고리의 다른 글

[c] 매크로 함수  (0) 2022.11.27
[c] 선행처리기  (0) 2022.11.27
[c] 파일 입출력  (0) 2022.11.27
[c] 콘솔 입출력  (0) 2022.11.27
[c] 공용체와 열거체  (0) 2022.11.27
Comments