반응형
파일에 데이터를 기록하는 함수들
파일에 데이터를 쓰는 함수는 프로그램의 결과나 로그를 파일에 저장할 때 사용됩니다. 대표적인 함수로는 printf, fprintf, sprintf가 있습니다.
printf 함수
printf는 표준 출력(콘솔)에 데이터를 출력하는 함수입니다. 다양한 형식의 데이터를 화면에 출력할 수 있습니다.
#include <stdio.h>
int main() {
int number = 10;
printf("The number is: %d\n", number); // 콘솔에 정수를 출력함
return 0;
}
실행 결과
The number is: 10
- printf 함수는 "The number is: " 문자열과 변수 number의 값을 형식화하여 출력합니다.
- %d는 정수 형식을 의미하며, number의 값이 해당 위치에 출력됩니다.
반응형
fprintf 함수
fprintf는 파일에 데이터를 출력하는 함수입니다. printf와 유사하지만, 출력 대상이 파일이라는 점에서 차이가 있습니다. 파일을 쓰기 모드로 열고(fopen), fprintf로 데이터를 출력한 후 파일을 닫아야 합니다.
#include <stdio.h>
int main() {
FILE *file = fopen("output.txt", "w"); // 파일을 쓰기 모드로 엶
if (file == NULL) {
printf("Could not open file.\n");
return 1;
}
int number = 100;
fprintf(file, "The number is: %d\n", number); // 파일에 데이터를 씀
fclose(file); // 파일 닫기
return 0;
}
실행 결과
(output.txt 파일)
The number is: 100
- fopen 함수로 output.txt 파일을 쓰기 모드로 엽니다.
- fprintf 함수는 파일에 "The number is: 100"이라는 형식으로 데이터를 씁니다.
- fclose 함수로 파일을 닫습니다.
sprintf 함수
sprintf는 문자열에 데이터를 출력하는 함수입니다. printf와 유사하지만, 출력 결과가 표준 출력이나 파일이 아닌 문자열에 저장된다는 점이 다릅니다.
#include <stdio.h>
int main() {
char buffer[50];
int number = 50;
sprintf(buffer, "The number is: %d", number); // 문자열에 데이터를 씀
printf("%s\n", buffer); // 문자열을 콘솔에 출력함
return 0;
}
실행 결과
The number is: 50
- sprintf 함수는 "The number is: 50" 문자열을 buffer에 씁니다.
- printf 함수는 buffer에 저장된 문자열을 출력합니다.
지난 시간과 이번 시간에 걸쳐 파일과 문자열 입출력 함수들에 대해 알아보았습니다. 사실, 이 함수들을 쉽게 구분할 수 있는 간단한 규칙이 있습니다. 함수의 접두사에 따라 "○○에 입력/출력한다"라는 공식이 적용됩니다. 즉, 접두사가 같다면 ○○ 또한 같다는 것입니다.
간단 정리
- 파일 문자열 입출력 함수들은 접두사에 따라 ○○에 입출력을 할 지 정해진다.
- f (fprintf, fscanf) : file, 파일에 입출력을 실행
s (sprintf, sscanf) : string, 문자열에 입출력을 실행
없는 경우 (printf, scanf) : 표준 입출력 = 콘솔에 실행
함수 원형
- 입력 함수 (#include <stdio.h>)
- scanf - int scanf(const char *format, ...);
반환 : 저장에 성공한 데이터 개수 - fscanf - int fscanf(FILE *stream, const char *format, ...);
반환 : 인자를 입력받은 개수 - sscanf - int sscanf(const char *str, const char *format, ...);
반환 : 성공적으로 변환되고 지정된 필드 수
- scanf - int scanf(const char *format, ...);
- 출력 함수 ( #include <stdio.h>)
- printf - int printf(const char *format, ...);
반환 : printf 함수가 반환하는 값은 문자열 길이 - fprintf - int fprintf(FILE *stream, const char *format, ...);
반환 : fprintf 가 쓰는 바이트 수 - sprintf - int sprintf(char *str, const char *format, ...);
반환 : 끝 널 문자를 계산하지 않고 배열에 작성된 바이트 수
- printf - int printf(const char *format, ...);
반응형