📜  通过C++类进行文件处理

📅  最后修改于: 2021-05-30 11:30:11             🧑  作者: Mango

在C++中,文件主要通过使用fstream头文件中可用的三个类fstream,ifstream,ofstream来处理。
ofstream:要写入文件的流类
ifstream:流类以从文件读取
fstream:流类以读取和写入文件。

现在第一步是打开特定文件进行读取或写入操作。我们可以通过以下方式打开文件
1.创建对象时在构造函数中传递文件名
2.使用开放方法
例如

模式:

Member Constant Stands For Access
in * input File open for reading: the internal stream buffer supports input operations.
out output File open for writing: the internal stream buffer supports output operations.
binary binary Operations are performed in binary mode rather than text.
ate at end The output position starts at the end of the file.
app append All output operations happen at the end of the file, appending to its existing contents.
trunc truncate Any contents that existed in the file before it is open are discarded.

默认打开模式:

ifstream ios::in
ofstream ios::out
fstream ios::in | ios::out

问题陈述:用C++读写文件。
例子:

Input : 
Welcome in GeeksforGeeks. Best way to learn things.
-1
Output : 
Welcome in GeeksforGeeks. Best way to learn things.

下面是使用ifsream&ofstream类的实现

C++
/* File Handling with C++ using ifstream & ofstream class object*/
/* To write the Content in File*/
/* Then to read the content of file*/
#include 
  
/* fstream header file for ifstream, ofstream, 
  fstream classes */
#include 
  
using namespace std;
  
// Driver Code
int main()
{
    // Creation of ofstream class object
    ofstream fout;
  
    string line;
  
    // by default ios::out mode, automatically deletes
    // the content of file. To append the content, open in ios:app
    // fout.open("sample.txt", ios::app)
    fout.open("sample.txt");
  
    // Execute a loop If file successfully opened
    while (fout) {
  
        // Read a Line from standard input
        getline(cin, line);
  
        // Press -1 to exit
        if (line == "-1")
            break;
  
        // Write line in file
        fout << line << endl;
    }
  
    // Close the File
    fout.close();
  
    // Creation of ifstream class object to read the file
    ifstream fin;
  
    // by default open mode = ios::in mode
    fin.open("sample.txt");
  
    // Execute a loop until EOF (End of File)
    while (fin) {
  
        // Read a Line from File
        getline(fin, line);
  
        // Print line in Console
        cout << line << endl;
    }
  
    // Close the file
    fin.close();
  
    return 0;
}


C++
/* File Handling with C++ using fstream class object */
/* To write the Content in File */
/* Then to read the content of file*/
#include 
  
/* fstream header file for ifstream, ofstream, 
   fstream classes */
#include 
  
using namespace std;
  
// Driver Code
int main()
{
    // Creation of fstream class object
    fstream fio;
  
    string line;
  
    // by default openmode = ios::in|ios::out mode
    // Automatically overwrites the content of file, To append
    // the content, open in ios:app
    // fio.open("sample.txt", ios::in|ios::out|ios::app)
    // ios::trunc mode delete all conetent before open
    fio.open("sample.txt", ios::trunc | ios::out | ios::in);
  
    // Execute a loop If file successfully Opened
    while (fio) {
  
        // Read a Line from standard input
        getline(cin, line);
  
        // Press -1 to exit
        if (line == "-1")
            break;
  
        // Write line in file
        fio << line << endl;
    }
  
    // Execute a loop untill EOF (End of File)
    // point read pointer at beginning of file
    fio.seekg(0, ios::beg);
  
    while (fio) {
  
        // Read a Line from File
        getline(fio, line);
  
        // Print line in Console
        cout << line << endl;
    }
  
    // Close the file
    fio.close();
  
    return 0;
}


下面是使用fstream类的实现。

C++

/* File Handling with C++ using fstream class object */
/* To write the Content in File */
/* Then to read the content of file*/
#include 
  
/* fstream header file for ifstream, ofstream, 
   fstream classes */
#include 
  
using namespace std;
  
// Driver Code
int main()
{
    // Creation of fstream class object
    fstream fio;
  
    string line;
  
    // by default openmode = ios::in|ios::out mode
    // Automatically overwrites the content of file, To append
    // the content, open in ios:app
    // fio.open("sample.txt", ios::in|ios::out|ios::app)
    // ios::trunc mode delete all conetent before open
    fio.open("sample.txt", ios::trunc | ios::out | ios::in);
  
    // Execute a loop If file successfully Opened
    while (fio) {
  
        // Read a Line from standard input
        getline(cin, line);
  
        // Press -1 to exit
        if (line == "-1")
            break;
  
        // Write line in file
        fio << line << endl;
    }
  
    // Execute a loop untill EOF (End of File)
    // point read pointer at beginning of file
    fio.seekg(0, ios::beg);
  
    while (fio) {
  
        // Read a Line from File
        getline(fio, line);
  
        // Print line in Console
        cout << line << endl;
    }
  
    // Close the file
    fio.close();
  
    return 0;
}
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”