C++의 파일 처리 – C++의 파일 및 스트림

C++의 파일 처리 – C++의 파일 및 스트림

科技

C++의 파일 처리는 데이터를 저장하고 검색하는 데 중요합니다. 이는 프로그램이 파일을 읽고 쓸 수 있도록 하여 지속적인 데이터 저장을 보장합니다. 이 기능은 데이터베이스, 텍스트 편집기, 게임과 같은 애플리케이션에서 널리 사용됩니다. 거의 모든 프로그래밍 언어에는 데이터 저장을 위한 ‘파일 처리’ 방법이 포함되어 있으며, 이 블로그는 C++ 파일 처리를 이해하는 데 도움이 될 것입니다. C++를 처음 사용하는 경우 이 블로그에서는 프로그래밍에서 효과적인 데이터 저장 및 복구를 위한 필수 기술인 C++에서 파일을 관리하는 방법을 이해하는 방법을 안내합니다.

목차

C 프로그래밍을 자세히 이해하려면 아래 비디오를 시청하십시오.

비디오 썸네일

C++의 파일 처리란 무엇입니까?

C++의 파일 처리는 파일 작업, 파일 읽기, 쓰기 및 내용 조작 프로세스를 의미합니다. 여기에는 입력 스트림(읽기용) 및 출력 스트림(쓰기용)과 같은 스트림을 사용하는 작업이 포함됩니다.

C++ 프로그래밍 언어에서는 다음을 포함하여 파일 처리 작업을 수행할 수 있습니다. “<프스트림>” 헤더는 “ifstream”(입력 작업용), “ofstream”(출력 작업용) 및 “fstream”(입력 및 출력 작업 모두용)과 같은 클래스를 제공합니다. 이러한 클래스를 사용하면 파일을 열고, 파일에서 데이터를 읽고, 파일에 데이터를 쓰고, 파일을 닫고, 파일 내의 특정 위치 찾기나 파일 끝 조건 확인과 같은 다양한 작업을 수행할 수 있습니다.

컴퓨터 프로그래밍 분야에서 경력을 시작하고 싶나요? 우리에 등록하세요 C 프로그래밍 코스 성공할 수 있는 기술을 습득하세요!

C++에서 파일 처리를 위한 기본 클래스는 무엇입니까?

C++에는 파일 처리에 사용되는 세 가지 기본 클래스가 있습니다.

  1. 표준::ifstream – 파일에서 읽는 데 사용되는 입력 파일 스트림 클래스입니다.
  2. 표준::스트림 – 파일에 쓰는 데 사용되는 출력 파일 스트림 클래스입니다.
  3. 표준::fstream – 파일에 대한 동시 입력 및 출력 작업을 지원하는 파일 스트림 클래스입니다.

이러한 클래스는 C++ 표준 라이브러리의 일부이며 파일 읽기, 파일 쓰기, 파일 내용 열기, 닫기 및 조작과 같은 다양한 파일 작업을 수행하는 기능을 제공합니다.

C++에서 파일 작업을 시작하기 전에 다음 사항을 알아야 합니다. 명명 규칙 파일의. 효과적인 파일 처리를 위해서는 의미 있고 설명이 포함된 파일 이름을 선택하는 것이 중요합니다. 명명 규칙은 짧고, 의미 있고, 간결해야 합니다. 파일 이름을 지정할 때 특수 문자, 공백 및 예약어를 피해야 합니다. 명명 규칙의 몇 가지 예는 다음과 같습니다.

좋은 이름:

  • sales_report_2022.xlsx
  • user_preference.json
  • main_script.py

피하다:

  • file123.txt(설명 없음)
  • 중요한 파일.doc(공백 포함)
  • Student%file.txt (특수문자 포함)

C++의 파일 작업

C++의 파일 작업에는 파일 읽기 및 쓰기가 포함됩니다. 이는 데이터 저장, 검색 및 조작에 중요합니다. 프로그램이 외부 파일과 상호 작용할 수 있도록 하고, 데이터 지속성과 애플리케이션 간 공유를 촉진합니다.

C++의 파일 작업

C++에서 파일 열기

C++에서 파일을 여는 것은 프로그램과 디스크의 파일 사이에 연결을 설정하는 프로세스를 의미합니다. 이 연결을 통해 프로그램은 파일에 대해 읽기 또는 쓰기와 같은 다양한 작업을 수행할 수 있습니다.

통사론:

open( FileName , Mode );

FileName : 파일 이름을 나타냅니다.

모드: 파일을 열려는 파일의 모드를 나타냅니다.

아래 표에는 파일을 여는 다양한 유형의 모드가 나와 있습니다.

모드 설명
iso::in 읽기 모드로 파일 열기
iso::출력 쓰기 모드로 파일 열기
iso::앱 추가 모드로 파일 열기
iso::먹었다 추가 모드로 파일을 열지만 읽기 및 쓰기는 파일 끝에서 수행됩니다.
iso::바이너리 바이너리 모드로 파일 열기
iso::트렁크 자르기 모드로 파일 열기
iso::생성하지 않음 파일이 존재하는 경우에만 열기
iso::위치 없음 파일이 존재하지 않는 경우에만 열기

암호:

#include <iostream>
#include <fstream>
int main() {
    // Declare an object of the fstream class
    std::fstream file;
    // Open a file named "example.txt" in output mode
    file.open("example.txt", std::ios::out);
    // Check if the file is successfully opened
    if (!file.is_open()) {
        std::cerr << "Error opening the file!" << std::endl;
        return 1; // Return an error code
    }
    // Write some data to the file
    file << "Hello, File I/O in C++!" << std::endl;
    // Close the file when done
    file.close();
    std::cout << "File successfully written." << std::endl;
    return 0;
}

산출:

파일이 성공적으로 작성되었습니다.

상단을 확인하세요 C++ 인터뷰 질문 다음 인터뷰에서 에이스를 위해!

C++에서 파일 읽기

파일에서 읽는 작업에는 >> 연산자(또는 파일 스트림 개체에서 제공하는 다른 적절한 읽기 함수)를 사용하여 열린 파일의 데이터를 변수나 버퍼로 추출하는 작업이 포함됩니다.

통사론:

fileStream >> variable; // Reading data from the file

암호:

#include <iostream>
#include <fstream>
#include <string>
int main() {
    std::ifstream infile("example.txt"); // Opens the file for reading
    if (infile.is_open()) {
        std::string line;
        while (std::getline(infile, line)) {
            std::cout << line << "\n"; // Output each line from the file
        }
        infile.close(); // Close the file when done reading
    } else {
        std::cout << "Unable to open the file!\n";
    }
    return 0;
}

C++로 파일 쓰기

파일에 쓰는 작업에는 << 연산자(또는 파일 스트림 객체가 제공하는 다른 적절한 쓰기 함수)를 사용하여 열린 파일에 데이터를 쓰는 작업이 포함됩니다.

통사론:

fileStream << "Data to write to the file"; // Writing data to the file

암호:

#include <iostream>
#include <fstream>
int main() {
    std::ofstream outfile("example.txt"); // Creates/Opens a file called "example.txt" for writing
    if (outfile.is_open()) {
        outfile << "Hello, file! This is some text.\n";
        outfile << "Another line in the file.\n";
        outfile.close(); // Close the file when done writing
        std::cout << "Data has been written to the file.\n";
    } else {
        std::cout << "Unable to open the file!\n";
    }
    return 0;
}

산출:

데이터가 파일에 기록되었습니다.

의 개념을 알아라 C++의 OOP 우리의 종합 블로그와 함께!

C++에서 파일 닫기

파일을 닫는 것은 프로그램과 파일 사이의 연결을 종료하기 위해 파일 스트림 객체에 “close()” 함수를 사용하는 것을 포함합니다. 이 작업은 모든 데이터가 올바르게 쓰거나 읽혀지도록 하고 파일과 관련된 시스템 리소스를 해제하는 데 중요합니다.

통사론:

fileStream.close(); // Close the file

암호:

#include <iostream>
#include <fstream>
int main() {
    std::ofstream fileStream("example.txt");
    if (fileStream.is_open()) {
        // Perform operations with the file (writing, etc.)
        fileStream.close(); // Close the file
        std::cout << "File closed successfully.\n";
    } else {
        std::cout << "Unable to open the file!\n";
    }
    return 0;
}

산출:

파일이 성공적으로 닫혔습니다.

건축 프로젝트에 관심이 있으십니까? 다음은 일부입니다. 상위 20개 C++ 프로젝트 아이디어!

파일 위치 포인터

파일 포인터 또는 파일 위치 표시라고도 하는 파일 위치 포인터는 파일 I/O 작업에서 파일의 현재 위치를 추적하는 데 사용됩니다. 이는 다음 읽기 또는 쓰기 작업이 발생할 파일 내의 위치를 ​​나타냅니다. C++에서 파일 위치 포인터는 파일 스트림 개체(std::fstream, std::ifstream, std::ofstream)와 연결됩니다.

두 가지 기본 파일 위치 포인터는 다음과 같습니다.

포인터 가져오기(입력 스트림에 대한 “포인터 가져오기”):

  • 파일에서 읽을 다음 문자의 현재 위치를 나타냅니다.
  • 이는 “tellg()”(현재 위치 가져오기) 및 “seekg()”(위치 설정)과 같은 함수에 의해 제어됩니다.

put 포인터(출력 스트림의 경우 “put 포인터”):

  • 파일에 기록될 다음 문자의 현재 위치를 나타냅니다.
  • 이는 “tellp()”(현재 위치 가져오기) 및 “seekp()”(위치 설정)과 같은 함수에 의해 제어됩니다.

파일 위치 포인터 사용 예:

#include <iostream>
#include <stream>
int main() {
    std::fstream file("example.txt", std::ios::in | std::ios::out);
    if (file.is_open()) {
        // Get the current get pointer position
        std::streampos getPosition = file.tellg();
        std::cout << "Current get pointer position: " << getPosition << "\n";
        // Move the get pointer to a specific position (e.g., the beginning of the file)
        file.seekg(0, std::ios::beg);
        // Get the current put pointer position
        std::streampos putPosition = file.tellp();
        std::cout << "Current put pointer position: " << putPosition << "\n";
        // Move the put pointer to a specific position (e.g., the end of the file)
        file.seekp(0, std::ios::end);
        file.close();
    } else {
        std::cout << "Unable to open the file!\n";
    }
    return 0;
}

산출:

현재 포인터 위치 가져오기: 0

현재 풋 포인터 위치: 0

이 예에서 “tellg()” 및 “tellp()”는 각각 get 및 put 포인터의 현재 위치를 검색하는 데 사용됩니다. 그런 다음 “seekg()” 및 “seekp()” 함수를 사용하여 포인터를 파일 내의 다른 위치로 이동합니다. 이러한 작업은 입력 및 출력 작업 중에 파일 내용을 탐색하고 조작하는 데 유용합니다.

상태 플래그 확인

C++에서 std::ios 클래스는 입력/출력 스트림의 상태를 이해하는 데 도움이 되는 다양한 상태 플래그를 제공합니다. 이러한 플래그는 I/O 작업 중에 특정 조건이 발생했는지 이해하기 위해 멤버 함수를 사용하여 액세스하고 확인할 수 있습니다.

다음은 몇 가지 일반적인 플래그와 사용법입니다.

실패하다(): 작업이 실패했는지 확인합니다(“bad() | failure()”와 동일).

eof(): 파일 끝에 도달했는지 확인합니다.

나쁜(): 복구할 수 없는 오류가 발생했는지 확인합니다.

좋은(): 오류 플래그가 설정되어 있지 않은지 확인합니다(“fail()”의 반대).

결론적 생각

C++의 파일 처리는 데이터 지속성 및 조작의 기본입니다. 기술이 발전함에 따라 그 중요성은 데이터베이스 관리 시스템, 대규모 데이터 처리 및 크로스 플랫폼 애플리케이션으로 확대됩니다. 데이터가 계속해서 초석이 되면서 파일 처리를 마스터하면 강력한 데이터 관리가 보장되어 소프트웨어 개발의 미래 혁신을 촉진할 수 있습니다.

의심스러운 점이나 질문이 있는 경우 당사에 문의해 주세요. 지역 사회!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *