C++ 로 파일 한 줄씩 읽고 쓰기

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 프로그래밍 언어를 사용하여 파일을 한 줄씩 읽고 쓰는 방법을 배우게 됩니다. 파일을 생성하고, 파일에 쓰고, 내용을 한 줄씩 읽는 방법을 익힐 것입니다.

파일 생성 및 열기

~/project 디렉토리에 file_io.cpp라는 C++ 파일을 생성합니다. 이 단계에서는 example.txt라는 파일을 생성하고 열 것입니다.

#include <fstream>

int main() {
    // Creating and opening a file
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    ofs.close();
    return 0;
}

설명:

  • ofstream은 파일에 쓰기 위한 클래스입니다.
  • ofsofstream 클래스의 객체입니다.
  • open() 메서드는 파일을 생성하고 여는 데 사용됩니다.
  • open() 메서드에서 첫 번째 인수는 생성할 파일의 이름이고, 두 번째 인수는 파일을 열 모드를 지정합니다. 여기서 out은 파일을 쓰기 위해 연다는 것을 지정하고, trunc는 파일이 이미 존재할 경우 잘라낸다는 것을 지정합니다.

파일에 쓰기

이 단계에서는 example.txt 파일에 쓸 것입니다.

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

int main() {
    std::ofstream ofs;
    ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
    if (ofs.is_open()) {
        std::cout << "Enter text to write to the file (Enter empty line to exit):" << std::endl;
        std::string line;
        do {
            std::getline(std::cin, line);
            if (line.length()) {
                ofs << line << std::endl;
            }
        } while (line.length());
        ofs.close();
    } else {
        std::cerr << "Error in opening the file" << std::endl;
    }
    return 0;
}

설명:

  • std::cout은 사용자에게 파일에 쓸 텍스트를 입력하라는 메시지를 콘솔에 표시하는 데 사용됩니다.
  • std::getline()은 사용자 입력을 한 줄씩 읽어 line 변수에 저장하는 데 사용됩니다.
  • if (line.length())는 사용자가 텍스트를 입력했는지 여부를 확인하는 데 사용됩니다. 사용자가 텍스트를 입력하지 않은 경우 루프가 종료됩니다.
  • ofs << line << std::endl;은 사용자 입력을 파일에 쓰고, 그 뒤에 줄 바꿈 문자를 추가하는 데 사용됩니다.
  • std::cerr은 파일을 열 수 없는 경우 콘솔에 오류 메시지를 표시하는 데 사용됩니다.

이 프로그램을 실행하려면 ~/project 디렉토리로 이동하여 다음 명령을 실행하십시오.

g++ file_io.cpp -o file_io && ./file_io

이 프로그램은 사용자에게 파일에 쓸 텍스트를 입력하라는 메시지를 표시한 다음 사용자 입력을 파일에 씁니다.

파일에서 읽기

이 단계에서는 example.txt 파일의 내용을 읽습니다.

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

int main() {
    std::ifstream ifs;
    ifs.open("example.txt");
    if (ifs.is_open()) {
        std::cout << "Contents of the file:" << std::endl;
        std::string line;
        while (std::getline(ifs, line)) {
            std::cout << line << std::endl;
        }
        ifs.close();
    } else {
        std::cerr << "Error in opening the file" << std::endl;
    }
    return 0;
}

설명:

  • std::ifstream은 파일에서 읽기 위한 클래스입니다.
  • ifsifstream 클래스의 객체입니다.
  • open() 메서드는 기존 파일을 여는 데 사용됩니다.
  • open() 메서드에서 인수는 열 파일의 이름입니다.
  • std::cout은 파일의 내용이 표시되고 있음을 나타내는 메시지를 콘솔에 표시하는 데 사용됩니다.
  • std::getline()은 파일의 내용을 한 줄씩 읽어 line 변수에 저장하는 데 사용됩니다.
  • std::cout << line << std::endl;은 파일의 내용을 한 줄씩 콘솔에 표시하는 데 사용됩니다.

이 프로그램을 실행하려면 ~/project 디렉토리로 이동하여 다음 명령을 실행하십시오.

g++ file_io.cpp -o file_io && ./file_io

이 프로그램은 example.txt 파일의 내용을 콘솔에 표시합니다.

요약

이 랩에서는 C++ 프로그래밍 언어를 사용하여 파일을 생성, 쓰고, 읽는 방법을 배웠습니다. ofstreamifstream 클래스를 사용하여 각각 파일에 쓰고 파일에서 읽는 방법을 배웠습니다. 또한 open() 메서드를 사용하여 파일을 생성하고 열고, getline() 메서드를 사용하여 파일의 내용을 한 줄씩 읽는 방법도 배웠습니다.