14.1. 프로그램언어 C++의 파일 입출력 기본 사용법

프로그램언어 C++에서의 파일 열기와 닫기

파일을 열고 닫는 것은 C++ 프로그래밍에서 중요한 작업 중 하나입니다. 파일을 열어 데이터를 읽거나 쓰고 작업을 마치면 파일을 닫아야 합니다.

파일을 열기 위해서는 fstream 또는 ifstream, ofstream 클래스를 사용합니다. fstream 클래스는 파일을 읽고 쓰는 데 사용되며, ifstream 클래스는 파일을 읽기 위해, ofstream 클래스는 파일을 쓰기 위해 사용됩니다.

아래는 파일을 열고 닫는 예제 코드입니다.

#include <iostream>
#include <fstream>

int main() {
    // 파일을 쓰기 모드로 열기
    std::ofstream file("example.txt");

    if (file.is_open()) {
        // 파일이 성공적으로 열렸을 때 작업 수행
        file << "Hello, World!";

        // 파일 닫기
        file.close();
    } else {
        std::cout << "파일을 열 수 없습니다." << std::endl;
    }

    return 0;
}

위의 예제 코드는 “example.txt” 파일을 쓰기 모드로 열고 “Hello, World!”를 파일에 씁니다. 작업을 마치면 파일을 닫습니다.

프로그램언어 C++에서의 데이터 쓰기

데이터를 파일에 쓰는 것은 C++ 프로그래밍에서 중요한 작업 중 하나입니다. 파일에 데이터를 쓰기 위해서는 파일을 열고, 데이터를 쓰고, 파일을 닫는 과정을 거쳐야 합니다.

아래는 C++에서 파일에 데이터를 쓰는 예제 코드입니다.


#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("data.txt"); // 파일을 쓰기 모드로 열기

    if (file.is_open()) {
        file << "Hello, World!" << std::endl; // 파일에 데이터 쓰기
        file.close(); // 파일 닫기
        std::cout << "데이터를 파일에 성공적으로 썼습니다." << std::endl;
    } else {
        std::cout << "파일을 열 수 없습니다." << std::endl;
    }

    return 0;
}

프로그램언어 C++에서의 데이터 읽기

프로그램언어 C++에서의 데이터 읽기는 파일 또는 표준 입력 스트림으로부터 데이터를 읽어와서 프로그램에서 활용하는 과정을 말합니다. 데이터를 읽는 방법은 다양한데, 주로 파일에서 데이터를 읽어오는 방법과 키보드로부터 데이터를 입력받는 방법이 널리 사용됩니다.

파일에서 데이터를 읽는 경우, 파일을 열고 파일 스트림을 통해 데이터를 읽어올 수 있습니다. 아래는 C++에서 파일에서 데이터를 읽는 예제 코드입니다.


#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream file("data.txt"); // 파일을 읽기 모드로 열기

    if (file.is_open()) {
        std::string data;
        while (std::getline(file, data)) { // 파일에서 한 줄씩 읽어오기
            std::cout << data << std::endl; // 읽은 데이터 출력
        }
        file.close(); // 파일 닫기
    } else {
        std::cout << "파일을 열 수 없습니다." << std::endl;
    }

    return 0;
}

위 코드는 “data.txt” 파일에서 한 줄씩 데이터를 읽어와서 화면에 출력하는 간단한 예제입니다. 파일을 열고 읽기 모드로 열었는지 확인한 후, 한 줄씩 데이터를 읽어오고 출력합니다.

또 다른 방법으로는 표준 입력 스트림(cin)을 사용하여 사용자로부터 데이터를 입력받을 수 있습니다. 아래는 표준 입력 스트림을 사용한 데이터 입력 예제 코드입니다.


#include <iostream>
#include <string>

int main() {
    std::string input;

    std::cout << "데이터를 입력하세요: ";
    std::getline(std::cin, input); // 사용자로부터 데이터 입력받기

    std::cout << "입력된 데이터: " << input << std::endl;

    return 0;
}

위 코드는 사용자로부터 데이터를 입력받아서 화면에 출력하는 예제입니다. 사용자로부터 데이터를 입력받을 때는 std::cin을 사용하고, std::getline 함수를 통해 한 줄씩 데이터를 입력받을 수 있습니다.

프로그램언어 C++에서의 파일 위치 포인터 사용법

파일 위치 포인터는 C++ 프로그래밍에서 파일을 읽거나 쓸 때 사용되는 중요한 개념입니다. 파일 위치 포인터는 현재 파일 내에서의 위치를 가리키는 포인터로, 파일을 읽거나 쓸 때 어디서부터 작업을 수행할지를 결정합니다.

파일 위치 포인터를 다루기 위해서는 파일을 열고 파일 위치 포인터를 조작하는 함수들을 사용해야 합니다. 파일을 열 때는 파일 스트림을 생성하고, 파일 위치 포인터를 조작할 때는 파일 스트림을 이용하여 작업합니다.

가장 기본적인 파일 위치 포인터 조작 함수로는 seekg()seekp()가 있습니다. seekg()는 파일 입력 위치 포인터를 조작하며, seekp()는 파일 출력 위치 포인터를 조작합니다.

예를 들어, 파일을 읽을 때 특정 위치로 이동하여 데이터를 읽고 싶다면 seekg() 함수를 사용할 수 있습니다. 아래는 파일 위치 포인터를 이용하여 파일을 열고 특정 위치로 이동한 후 데이터를 읽는 예제 코드입니다.


#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("example.txt", std::ios::binary);

    if (file.is_open()) {
        // 파일 위치 포인터를 10바이트로 이동
        file.seekg(10);

        // 파일로부터 데이터를 읽어와 출력
        char data[100];
        file.read(data, 100);
        std::cout << "Data read: " << data << std::endl;

        file.close();
    } else {
        std::cout << "Failed to open file." << std::endl;
    }

    return 0;
}

위 예제 코드에서는 seekg() 함수를 사용하여 파일 위치 포인터를 10바이트로 이동시킨 후, 해당 위치부터 데이터를 읽어와 출력하고 있습니다. 파일을 열고 닫는 과정도 중요하니 주의해야 합니다.

프로그램언어 C++에서의 텍스트 파일과 이진 파일의 차이점

텍스트 파일과 이진 파일의 차이점

텍스트 파일과 이진 파일은 데이터를 저장하는 방식에 있어서 차이가 있습니다. 텍스트 파일은 사람이 읽을 수 있는 문자로 이루어진 파일이며, 이진 파일은 0과 1로 이루어진 이진 데이터를 저장하는 파일입니다.

텍스트 파일의 특징

텍스트 파일은 문자열 데이터를 저장하는 데에 주로 사용됩니다. 텍스트 파일은 사람이 직접 읽을 수 있고 수정할 수 있으며, 일반적으로 텍스트 편집기로 열 수 있습니다.

이진 파일의 특징

이진 파일은 컴퓨터가 직접 이해하고 처리할 수 있는 이진 데이터를 저장하는 데에 사용됩니다. 이진 파일은 특정 프로그램을 통해 읽고 해석해야 하며, 사람이 직접 읽기 어렵습니다.

예제 코드


// 텍스트 파일 쓰기
#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("textfile.txt");
    if (file.is_open()) {
        file << "Hello, World!";
        file.close();
    }
    return 0;
}
        


// 이진 파일 쓰기
#include <iostream>
#include <fstream>

int main() {
    std::ofstream file("binaryfile.bin", std::ios::binary);
    if (file.is_open()) {
        int data = 42;
        file.write(reinterpret_cast<const char*>(&data), sizeof(data));
        file.close();
    }
    return 0;
}
        

Leave a Comment