C++에서 fprintf 함수는 서식화된 문자열을 파일에 출력하는 함수입니다. fprintf 함수는 C 표준 라이브러리인 cstdio 헤더 파일에 정의되어 있으며, C++에서도 사용할 수 있습니다. 이 함수를 사용하면 서식 문자열에 따라 값을 포맷하여 파일에 출력할 수 있습니다.
fprintf 함수 구문
fprintf 함수의 기본 구문은 다음과 같습니다.
int fprintf(FILE* stream, const char* format, ...);
위의 구문에서 매개변수는 다음과 같습니다.
- stream: 출력할 파일 스트림입니다.
- format: 서식 문자열로, 출력할 문자열의 형식을 지정합니다.
- ...: 가변 인수로, 서식 문자열에 맞게 값을 전달합니다.
fprintf 함수는 format에 지정된 형식에 따라 값을 변환하여 stream에 출력합니다. 서식 문자열은 % 기호를 사용하여 형식 지정자와 함께 작성됩니다. 예를 들어 %d는 10진수 정수를 나타내고, %s는 문자열을 나타냅니다.
C++ fprintf 예제 코드
1. 파일에 정수와 실수를 출력하는 예제
#include <iostream>
#include <cstdio>
int main() {
FILE* file = fopen("output.txt", "w");
if (file == nullptr) {
std::cout << "Failed to open the file." << std::endl;
return 1;
}
int number = 42;
double pi = 3.14159;
fprintf(file, "Number: %d\n", number);
fprintf(file, "Pi: %.2f\n", pi);
fclose(file);
std::cout << "Formatted output successfully written to the file." << std::endl;
return 0;
}
이 예제는 "output.txt" 파일에 정수와 실수를 출력하는 예제입니다. "number" 변수에는 정수 값 42를, "pi" 변수에는 실수 값 3.14159를 저장합니다. "fprintf" 함수를 사용하여 서식화된 문자열을 파일에 출력하는데, %d는 정수를 %f는 실수를 나타냅니다.%. 2는 소수점 이하 2자리까지만 출력하도록 지정합니다.
2. 사용자로부터 문자열을 입력받아 파일에 저장하는 예제
#include <iostream>
#include <cstdio>
int main() {
FILE* file = fopen("output.txt", "w");
if (file == nullptr) {
std::cout << "Failed to open the file." << std::endl;
return 1;
}
char input[100];
std::cout << "Enter a string: ";
std::cin.getline(input, sizeof(input));
fprintf(file, "Input: %s\n", input);
fclose(file);
std::cout << "Formatted output successfully written to the file." << std::endl;
return 0;
}
이 예제는 사용자로부터 문자열을 입력받아 "output.txt" 파일에 저장하는 예제입니다. "input" 배열에 사용자로부터 입력을 받고, "fprintf" 함수를 사용하여 %s 형식 지정자를 사용하여 문자열을 파일에 출력합니다.
3. 구조체 정보를 파일에 출력하는 예제
#include <iostream>
#include <cstdio>
struct Person {
std::string name;
int age;
};
int main() {
FILE* file = fopen("output.txt", "w");
if (file == nullptr) {
std::cout << "Failed to open the file." << std::endl;
return 1;
}
Person person;
person.name = "John Doe";
person.age = 30;
fprintf(file, "Name: %s\n", person.name.c_str());
fprintf(file, "Age: %d\n", person.age);
fclose(file);
std::cout << "Formatted output successfully written to the file." << std::endl;
return 0;
}
이 예제는 구조체 Person에 관한 정보를 파일에 출력하는 예제입니다. Person 구조체는 이름(name)과 나이(age)를 멤버로 가지고 있습니다. "fprintf" 함수를 사용하여 %s 형식 지정자로 문자열을, %d 형식 지정자로 정수를 파일에 출력합니다. 구조체의 멤버에 접근하기 위해 person.name.c_str()을 사용하여 문자열을 C 스타일의 문자열로 변환하여 출력합니다.
fprintf 함수를 사용하여 서식화된 문자열을 파일에 출력할 수 있으며, 위 예제들을 참고하여 해당 함수를 적절하게 활용할 수 있습니다. 파일 처리가 끝나면 "fclose" 함수를 사용하여 파일을 닫는 것을 잊지 않도록 주의해야 합니다. 또한, C++에서는 "fprintf" 대신에 "std::ofstream" 클래스와 스트림 삽입 연산자(<<)를 사용하여 더 편리하게 파일에 출력할 수 있습니다.
댓글