C++檔案和流


在C++程式設計中,我們使用iostream標準庫,它提供了cincout方法,分別從輸入和輸出讀取流。

要從檔案讀取和寫入,我們使用名稱為fstream的標準C++庫。 下面來看看看在fstream庫中定義的資料型別是:

資料型別 描述
fstream 它用於建立檔案,向檔案寫入資訊以及從檔案讀取資訊。
ifstream 它用於從檔案讀取資訊。
ofstream 它用於建立檔案以及寫入資訊到檔案。

C++ FileStream範例:寫入檔案

下面來看看看使用C++ FileStream程式設計寫一個定稿文字檔案:testout.txt的簡單例子。

#include <iostream>  
#include <fstream>  
using namespace std;  
int main () {  
  ofstream filestream("testout.txt");  
  if (filestream.is_open())  
  {  
    filestream << "Welcome to javaTpoint.\n";  
    filestream << "C++ Tutorial.\n";  
    filestream.close();  
  }  
  else cout <<"File opening is fail.";  
  return 0;  
}

執行上面程式碼,輸出結果如下 -

The content of a text file testout.txt is set with the data:
Welcome to javaTpoint.
C++ Tutorial.

C++ FileStream範例:從檔案讀取

下面來看看看使用C++ FileStream程式設計從文字檔案testout.txt中讀取的簡單範例。

#include <iostream>  
#include <fstream>  
using namespace std;  
int main () {  
  string srg;  
  ifstream filestream("testout.txt");  
  if (filestream.is_open())  
  {  
    while ( getline (filestream,srg) )  
    {  
      cout << srg <<endl;  
    }  
    filestream.close();  
  }  
  else {  
      cout << "File opening is fail."<<endl;   
    }  
  return 0;  
}

注意:在執行程式碼之前,需要建立一個名為「testout.txt」的文字檔案,並且文字檔案的內容如下所示:

Welcome to Tw511.com.
C++ Tutorial.

執行上面程式碼輸出結果如下 -

Welcome to Tw511.com.
C++ Tutorial.

C++讀寫範例

下面來看看一個簡單的例子,將資料寫入文字檔案:testout.txt,然後使用C++ FileStream程式設計從檔案中讀取資料。

#include <fstream>  
#include <iostream>  
using namespace std;  
int main () {  
   char input[75];  
   ofstream os;  
   os.open("testout.txt");  
   cout <<"Writing to a text file:" << endl;  
   cout << "Please Enter your name: ";   
   cin.getline(input, 100);  
   os << input << endl;  
   cout << "Please Enter your age: ";   
   cin >> input;  
   cin.ignore();  
   os << input << endl;  
   os.close();  
   ifstream is;   
   string line;  
   is.open("testout.txt");   
   cout << "Reading from a text file:" << endl;   
   while (getline (is,line))  
   {  
   cout << line << endl;  
   }      
   is.close();  
   return 0;  
}

執行上面程式碼,得到以下結果 -

Writing to a text file:  
 Please Enter your name: Nber su
Please Enter your age: 27
 Reading from a text file:   Nber su
27