C++對文本文件的讀取和輸出


本文轉載自xmh_free

自己瀏覽了上方的博客,主要整理了一下關於C++對文件的輸入輸出方法,如果想看C語言的輸入輸出方法,可瀏覽上述鏈接的博客

C++讀寫函數

在C++中,對文件的操作是通過stream的子類fstream來實現的。要用這種方式操作文件,就必須加入頭文件fstream.h,也可以寫成fstream。

文本文件

讀操作

函數open的原型是*void open(const char filename,int mode,int access)。參數filename:要打開的文件名;參數mode:要打開文件的方式;access:打開文件的屬性。打開文件的方式在類ios(是所有流式I/O類的基類)中定義,常用的值如下(可以用“|”或者“+”把以下屬性連接起來):

  • ios::in 以只讀方式打開文件
  • ios::out 以只寫方式打開文件
  • ios::app 以追加(寫)方式打開文件
  • ....(上述博客中提到的其余三種在我的DEVC++上顯示沒有,所以需要其他功能的自行百度)

寫操作

在C++語法中,文本文件輸出函數的重點也是對輸出格式的控制。這里是通過調用標准庫中相應的輸出格式設置函數來實現的,調用時需要包含頭文件iomanip.h。比較常用的格式控制函數有:字符寬度設置函數setw(int);默認填充字符設置函數setfill(char);輸出精度設置函數setprecision(int)。可自行結合下列進行嘗試。

代碼測試

這個代碼要解決的問題是:

給定一個整數數組ar, 其中只有一個數出現了奇數次數,其他的數都是偶數詞,打印這個數。本文中使用的是常規方法,更巧妙的求解是采用異或進行運算,留給讀者自己嘗試。

運行之前的text.txt文件內容為

/*C++讀寫文件測試*/
#include<iostream>
#include<cstring>
#include<fstream>//讀寫頭文件 
#include<algorithm>//算法頭文件 
using namespace std;
int main(){
    int arr[40],n;
    string filepath="text.txt";
    ifstream pin;//ifstream,ofstream都是類名,定義的pin,put就是一個類的變量,通過該變量可以替代cin,cout進行輸入,輸出
    ofstream put;
    put.open(filepath.c_str(), ios::app);
    pin.open("text.txt",ios::in);
    pin>>n;//從文件中讀入n
    for(int i=0;i<n;i++) pin>>arr[i];//從文件中讀入各個數
//    int n=sizeof(arr)/sizeof(arr[0]);//注意strlen是統計字符數組的長度,而不能統計char類型, 
//    cout<<n;
    sort(arr,arr+n);//利用algorithm中的庫函數 
    for(int i=0;i<n;i=i+2){
        if(arr[i]!=arr[i+1]){
            put<<endl;
            put<<setw(6)<<setfill('*')<<arr[i]<<endl;//將arr[i]寫入filepath下的文件中 
            break;
        }
    }
    double k = 192.9773;
    put<<setprecision(6)<<k<<endl;
return 0; }

運行之后text.txt中的結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM