`fputs` 함수
fputs 함수 (fputs)
널 종료 문자열을 그대로 파일에 써야 할 때, 문자를 fputc로 일일이 반복하는 대신 한 번에 써 주는 함수가 fputs예요. 다만 아쉬운 점(또는 특징)이 하나 있는데, 문자열 끝에 개행 문자를 자동으로 붙이지 않아요.
출처: cppreference
본문
함수 원형
<stdio.h>에 정의돼 있어요.
int fputs( const char* str, FILE* stream ); // (until C99)
int fputs( const char* restrict str, FILE* restrict stream ); // (since C99)
설명 (Explanation)
널 종료 문자열 str의 모든 문자를 fputc를 반복해서 호출하는 것처럼 출력 스트림 stream에 써요.
str의 끝에 있는 종료 널 문자는 쓰지 않아요.
매개변수 (Parameters)
str— 쓸 널 종료 문자열stream— 출력 스트림
반환값 (Return value)
성공하면 0 이상의 값을 돌려줘요.
실패하면 EOF를 돌려주고 stream에 오류 표시를 설정해요(ferror() 참고).
주의할 점 (Notes)
관련 함수 puts는 출력 끝에 개행 문자를 추가하는 반면, fputs는 문자열을 그대로 써요. 그래서 파일에 한 줄을 정확히 쓰고 싶을 때는 fputs가 더 예측 가능해요.
구현마다 돌려주는 0 이상의 값이 달라요. 어떤 구현은 마지막으로 쓴 문자를, 어떤 구현은 쓴 문자 수를(문자열이 그보다 길면 INT_MAX), 어떤 구현은 0 같은 상수만 돌려주기도 해요.
예제 (Example)
stdout에 문자열을 쓰고 실패를 검사하는 간단한 예시예요.
#include <stdio.h>
int main(void)
{
int rc = fputs("Hello World", stdout);
if (rc == EOF)
perror("fputs()"); // POSIX requires that errno is set
}
출력:
Hello World
같이 보기 (See also)
puts— stdout에 문자열 쓰기fgets— 파일 스트림에서 문자열 가져오기