1. 程式人生 > >簡單地檔案輸入\輸出

簡單地檔案輸入\輸出

1、寫入到文字檔案

對於檔案輸入,c++使用類似於cout的東西。先複習一些有關將cout用於控制檯輸出的基本事實,為檔案輸出做準備。
控制檯輸出:

  • 必須包含標頭檔案iostream。
  • 標頭檔案iostream定義了一個用於處理輸出的ostream類。
  • 標頭檔案 iostream聲明瞭一個名為cout的ostream物件。
  • 必須指明名稱空間std;
  • 結合使用cout和<<來顯示各種型別的資料。

檔案輸出:

  • 必須包含標頭檔案fstream。
  • 標頭檔案fstream定義了一個用於處理輸出的ofstream類。
  • 需要宣告一個或多個ofstream變數(物件),並以自己 喜歡的方式 對其命名,條件是遵守常用的命名規則。
  • 必須指明名稱空間std;
  • 需要將ofstream變數(物件)與檔案關聯起來,為此,方法之一是使用open ()方法。
  • 使用完檔案之後,利用方法close()將其關閉。
  • 結合使用ofstream和<<來顯示各種型別的資料。

例程:

#include <iostream>
#include <fstream>
int main()
{
    using namespace std;

    char name[50];
    int year;
    double math;
    double english;

    ofstream outFile;
    outFile.open("1.txt"
); /*控制檯輸入*/ cout<<"Enter your name:"; cin.getline(name,50); cout<<"Enter the year:"; cin>>year; cout<<"math score:"; cin>>math; cout<<"english score:"; cin>>english; /*顯示在螢幕上*/ //控制輸出格式 cout<<fixed; cout.precision(2
); cout.setf(ios_base::showpoint); cout<<"Make and model:"<<name<<endl; cout<<"Year:"<<year<<endl; cout<<"math:"<<math<<endl; cout<<"english:"<<english<<endl; /*寫入檔案*/ outFile<<fixed; outFile.precision(2); outFile.setf(ios_base::showpoint); outFile<<"Make and model:"<<name<<endl; outFile<<"Year:"<<year<<endl; outFile<<"math:"<<math<<endl; outFile<<"english:"<<english<<endl; /*關閉檔案*/ outFile.close(); return 0; }

輸出結果
建立的TXT檔案:
這裡寫圖片描述

需要注意的是:建立好ofstream物件(outFile)後便可以像使用cout那樣來使用outFile

關於open ()方法,程式執行之前,檔案不存在,方法open()將會新建一個名為1.txt的文字檔案。若檔案存在,預設情況下,open()將會截斷該檔案,即將它的長度截斷為0—丟掉原來的檔案內容,將新的輸出寫入到檔案。

2、讀取文字檔案

控制檯輸入:

  • 必須包含標頭檔案iostream。
  • 標頭檔案iostream定義了一個用於處理輸出的istream類。
  • 標頭檔案 iostream聲明瞭一個名為cin的istream物件。
  • 必須指明名稱空間std;
  • 結合使用cin和>>來顯示各種型別的資料。
  • 可以使用cin和get()來讀取一個字元,也可以使用cin和getline()來輸入一行字元。
  • 可以結合使用cin和eof()、fail()方法來判斷輸入是否成功。

檔案輸出:

  • 必須包含標頭檔案fstream。
  • 標頭檔案fstream定義了一個用於處理輸入的ifstream類。
  • 需要宣告一個或多個ifstream變數(物件),並以自己 喜歡的方式 對其命名,條件是遵守常用的命名規則。
  • 必須指明名稱空間std;
  • 需要將ifstream變數(物件)與檔案關聯起來,為此,方法之一是使用open ()方法。
  • 使用完檔案之後,利用方法close()將其關閉。
  • 結合使用ifstream物件和>>來顯示各種型別的資料。
  • 可以使用ifstream物件和get()方法來讀取一個字元,使用ifstream和getline()來讀取一行字元。
  • 可以結合使用ifstream物件和eof()、fail()方法來判斷輸入是否成功。

  • 例程
#include <iostream>
#include <fstream>
#include <cstdlib>
const int SIZE=60;
int main()
{
    using namespace std;

    char fileName[SIZE];
    cout<<"Enter name of data file:";
    cin.getline(fileName,SIZE);

    ifstream inFile;
    inFile.open(fileName);
    /*判斷檔案是否開啟*/
    if (!inFile.is_open())
    {
        cout<<"Could not open the file "<<fileName<<endl;
        cout<<"Program terminating."<<endl;
        exit(EXIT_FAILURE);
    }
    /*讀取檔案*/
    double single;
    double sum=0.0;
    int count=0;

    inFile>>single;
    while (inFile.good())
    {
        ++count;
        sum+=single;
        inFile>>single;
    }
    /*判斷檔案資料讀取結束的原因*/
    if (inFile.eof())
    {
        cout<<"End the data"<<endl;
    }
    else 
        if (inFile.fail())
        {
            cout<<"Input terminated by data mismath"<<endl;
        } 
        else
        {
            cout<<"Input terminated by unknowed method"<<endl;
        }
    /*計算數字和以及均值*/
    if (count==0)
    {
        cout<<"No data processed"<<endl;
    } 
    else
    {
        cout<<"The number of data:"<<count<<endl;
        cout<<"Sum:"<<sum<<endl;
        cout<<"Average"<<sum/count<<endl;
    }
    /*關閉檔案*/
    inFile.close();

    return 0;
}

輸出結果:
這裡寫圖片描述
txt檔案:
這裡寫圖片描述

值得注意的是:

  • 檢查檔案是否開啟成功使用方法is_open(),如果成功開啟返回true,否則呼叫exit()函式,標頭檔案在cstdlib中定義,還定義了一個用於同作業系統通訊的引數值EXIT_FAILURE。函式exit()終止程式。exit(EXIT_FAILURE);表示程式非正常退出。exit(EXIT_SUCCESS);表示程式正常退出。
  • 讀取檔案時,利用幾個函式判斷檔案終止讀取是基於什麼原因比如eof()、fail()、bad()函式等,還有一種更簡單的方式good(),該函式沒有發生任何錯誤時,返回true。

相關推薦

簡單檔案輸入\輸

1、寫入到文字檔案 對於檔案輸入,c++使用類似於cout的東西。先複習一些有關將cout用於控制檯輸出的基本事實,為檔案輸出做準備。 控制檯輸出: 必須包含標頭檔案iostream。 標頭檔案iostream定義了一個用於處理輸出的ostream類

【C++】如何進行簡單檔案輸入、輸出?(基本操作及程式碼示例)(程式設計習慣)

使用cin進行輸入時,程式將輸入 視為一系列的位元組,每個位元組都被解釋為字元編碼,輸入一開始都是字元資料。 輸出檔案開啟 //第一種 ofstream outFile; outFile.open("my.txt"); //第二種 ofstream fout; char filename[5

C++中簡單的文字檔案輸入/輸出

為了便於理解,我們把cout 用於控制檯輸出時的一些情況和寫入到文字檔案的情況進行類比: cout 控制檯輸出 包含標頭檔案 iostream 標頭檔案 iostream 定義了一個 ostream 類用於處理輸出 標頭檔案 iostream 聲明瞭一

freopen - C/C++檔案輸入輸出利器

freopen以前經常使用,比較方便,可以當作模板,在中間替換為自己的程式碼即可使用。 [cpp] view plain copy #incl

檔案輸入輸出及csv檔案

讀取檔案 fileobject=open('b.txt') result=fileobject.read() print(result) fileobject.close() 測試結果如下圖所示: 寫入檔案: fileobject=open('c.txt',mode='w')

檔案輸入輸出的管理以及管道的使用

在linux作業系統中,一個程式被載入到記憶體並開始執行後是以程序的形式的形態表現出來的,而系統宗的每一個程序在預設的情況下都有三個標準的通道,分別為標準輸入、標準輸出和標準錯誤輸出。標準輸入的操作程式碼為0,標準輸出的操作程式碼為1,標準錯誤輸出的操作程式碼為2。 在linux系統中用普通使用者執行命令

檔案輸入輸出【模板】

檔案輸入輸出【模板】 直接看程式碼 #include <cstdio> int main() { freopen("*.in","r",stdin); freopen("*.out","w",stdout); /*---code---*/ /*---end-

小學生出題系統(檔案輸入輸出)

//信1705-2 20173629 何偉豪 package 小學計算題檔案; import java.util.Random; //隨機生成數字的標頭檔案 import java.util.Scanner; //輸入整型資料的標頭檔案 import java.io.*; import

利用陣列的的檔案輸入輸出

利用陣列的檔案輸入輸出 1. 將陣列以二進位制格式儲存到磁碟 np.save和np.load是讀寫磁碟陣列資料的兩個主要函式。預設情況下,陣列是以未壓縮的原始二進位制格式儲存在副檔名為.npy的檔案中的。   import numpy as np arr=np.arange(10)

C ++基礎 | 格式化輸出,檔案輸入輸出(File IO),標頭檔案(Header Files)_3

目錄 格式化輸出 檔案輸入輸出(File IO) 標頭檔案(Header Files) 格式化輸出 要格式化資料,我們可以使用轉義字串(Escape Sequence)也稱字元實體(Character Entity)。這些不需要任何額外的庫。 C ++ 轉義字串

Numpy_06 陣列的檔案輸入輸出 線性代數

將陣列寫入本地,將陣列從本地讀取 import numpy as np # NumPy能夠讀寫磁碟上的文字資料或二進位制資料。 # np.save和np.load是讀寫磁碟陣列資料的兩個主要函式。預設

利用python進行資料分析-----第二篇 Numpy 陣列 向量計算 索引 切片 轉置 軸對換 檔案輸入輸出

目錄 布林值索引 花式索引 其他函式 排序 線性代數 隨機數生成 Numpy簡介 NumPy是一種通用的陣列處理軟體包,旨在有效地操縱任意記錄的大型多維陣列,而不會為小

C++檔案輸入輸出

ACM中巧用檔案的輸入輸出來改寫acm程式的輸入輸出 經常有見大神們使用檔案來代替ACM程式中的IO,尤其是當程式IO比較複雜時,可以使自己能夠更專注於程式碼的測試,而不是怎樣敲輸入。   /* *@Author: STZG *@Language: C++ */ #in

C/C++檔案輸入輸出(詳細介紹)

´在標頭檔案iostream中定義有兩個流類:輸入流類istream和輸出流類ostream,且用這兩個類定義了流物件cin和cout: ´Istream cin; ´ostream cout; ´cin是一個istream類的物件,它從標準輸入裝置(鍵盤)獲取資料

c++筆記(10) 檔案輸入輸出

c++ 定義了ifstream, ofstream, fstream類用於檔案處理和操作檔案,這些類定義在標頭檔案<fstream>中。 c++使用“流”來描述資料流動,資料流向程式,則為input stream(輸入流),反之為output stream輸出流

C Primer Plus (第五版)中文版——第 13 章 檔案輸入/輸出

13.1  和檔案進行通訊 13.1.1  檔案是什麼 一個檔案(file)通常就是磁碟上的一段命名的儲存區。C 將檔案看成是連續的位元組序列,其中沒一個位元組單獨地讀取。ANSI C 提供了檔案的兩種檢視:文字檢視、二進位制檢視。 13.1.2  文字檢視

vector,string,標準輸入輸出流,檔案輸入輸出流01(C++)

按要求編寫程式。 a) 定義一個結構體型別 Student,如下所示: struct Student { int ID; //學號 string name; //姓名 float score[3]; //三門課程成績 }; b) 編寫一個函式,按照上述結構體定義,依次從鍵盤輸

hdfs nfs 報錯:cp: 無法建立普通檔案: 輸入/輸出錯誤

使用mount.nfs  $nfs_ip:/  /mnt/hdfs之後,向/mnt/hdfs拷貝檔案儲存cp: 無法建立普通檔案: 輸入/輸出錯誤於是,修改hdfs的配置項:dfs.namenode.accesstime.precision將其從預設的0,修改為3600000

IO庫----IO類,檔案輸入輸出,string流

一、IO類   1、IO庫型別和標頭檔案表: 標頭檔案 型別 iostream istream,wistream 從流讀取資料 ostream,wostream 向流寫入資料 iostream,wiostream 讀寫流

檔案輸入輸出流工具: IOUtils使用總結

檔案輸入輸出流工具: IOUtils使用總結 以前寫檔案的複製很麻煩,需要各種輸入流,然後讀取line,輸出到輸出流...其實apache.commons.io裡面提供了輸入流輸出流的常用工具方法,非常方便。下面就結合原始碼,看看IOUTils都有什麼用處吧! 本文系轉載,原作者:xi