본문 바로가기
프로그래밍/C&C++

[C++]C++ fprintf 구문 및 예제코드

by wyatti 2023. 5. 18.

C++에서 fprintf 함수는 서식화된 문자열을 파일에 출력하는 함수입니다. fprintf 함수는 C 표준 라이브러리인 cstdio 헤더 파일에 정의되어 있으며, C++에서도 사용할 수 있습니다. 이 함수를 사용하면 서식 문자열에 따라 값을 포맷하여 파일에 출력할 수 있습니다.
C++ fprintf 구문 예제 코드

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" 클래스와 스트림 삽입 연산자(<<)를 사용하여 더 편리하게 파일에 출력할 수 있습니다.

댓글