欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中簡單的文本文件輸入/輸出示例詳解

 更新時(shí)間:2021年12月20日 09:45:45   作者:francis_xd  
C++程序把輸入和輸出看作字節(jié)流,輸入時(shí)程序從輸入流中抽取字節(jié),輸出時(shí)程序?qū)⒆止?jié)插入到輸出流中,下面這篇文章主要給大家介紹了關(guān)于C++中簡單的文本文件輸入/輸出的相關(guān)資料,需要的朋友可以參考下

為了便于理解,我們把cout 用于控制臺(tái)輸出時(shí)的一些情況和寫入到文本文件的情況進(jìn)行類比:

cout 控制臺(tái)輸出

包含頭文件 iostream

頭文件 iostream 定義了一個(gè) ostream 類用于處理輸出

頭文件 iostream 聲明了一個(gè)名為 cout 的 ostream 對(duì)象

指明名稱空間 std

可以結(jié)合使用cout和運(yùn)算符<<來顯示各種類型的數(shù)據(jù)

文本文件輸出(寫入到文本文件)

包含文件頭 fstream

頭文件 fstream 定義了一個(gè)ofstream 類用于處理輸出

聲明一個(gè)或多個(gè) ofstream 對(duì)象,可以自由命名

指明名稱空間 std

把 3 中聲明的 ofstream 對(duì)象與文件關(guān)聯(lián)起來,比如使用 open()方法

使用完文件后,需要使用 close()方法將其關(guān)閉

還可以結(jié)合 ofstream 對(duì)象和運(yùn)算符<<來輸出各種類型的數(shù)據(jù)

注意:cout 控制臺(tái)輸入輸出中,頭文件 iostream 聲明了一個(gè)名為 cout 的 ostream 對(duì)象,無需自己手動(dòng)聲明;文件輸出中,我們必須自己動(dòng)手聲明一個(gè) ofstream 對(duì)象,為其命名,將其同文件關(guān)聯(lián)起來。請(qǐng)看下面的例子:

#include<fstream>
ofstream OutFile;   //聲明一個(gè) ofstream 對(duì)象
OutFile.open("study.txt");  //將OF與“study.txt”文件關(guān)聯(lián)起來

下面請(qǐng)看一個(gè)完整的程序,用戶輸入信息,將信息顯示到屏幕上,再將這些信息寫入到文本文件中:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    char name[20];
    double height;
    double weight;
    ofstream outFile;//創(chuàng)建了一個(gè)ofstream 對(duì)象
    outFile.open("information.txt");//outFile 與一個(gè)文本文件關(guān)聯(lián)
    cout<<"Enter name: ";
    cin.getline(automobile, 20);
    cout<<"Enter height: ";
    cin>>year;
    cout<<"Enter weight: ";
    cin>>weight;

    // cout 控制臺(tái)輸出前面輸入的信息
    cout<<fixed;
    cout.precision(2);
    cout.setf(ios_base::showpoint);
    cout<<"Make and Model: "<<automobile<<endl;
    cout<<"Year: "<<year<<endl;
    cout<<"Was asking $"<<a_price<<endl;
    cout<<"Now asking $"<<d_price<<endl;

    // outFile 把信息寫入到文本文件
    outFile<<fixed;    //小數(shù)點(diǎn)格式顯示double
    outFile.precision(2);    //設(shè)置精度
    outFile.setf(ios_base::showpoint);    //強(qiáng)制顯示小數(shù)點(diǎn)后的零
    outFile<<"Name: "<<name<<endl;
    outFile<<"Height: "<<height<<endl;
    outFile<<"Weight: "<<weight<<endl;
    outFile.close();    //使用完文本文件后要用close()方法將其關(guān)閉
    return 0;
}

接下來,我們?cè)侔裞in 用于控制臺(tái)輸入時(shí)的一些情況和讀取文本文件的情況進(jìn)行類比:

cin 控制臺(tái)輸出

包含頭文件 iostream

頭文件 iostream 定義了一個(gè) istream 類用于處理輸出

頭文件 iostream 聲明了一個(gè)名為 cin 的 istream 對(duì)象

指明名稱空間 std

可以結(jié)合使用cin和運(yùn)算符>>來輸入各種類型的數(shù)據(jù)

文本文件輸入(讀取文本文件)

包含文件頭 fstream

頭文件 fstream 定義了一個(gè)ifstream 類用于處理輸出

聲明一個(gè)或多個(gè) ifstream 對(duì)象,可以自由命名

指明名稱空間 std

把 3 中聲明的 ifstream 對(duì)象與文件關(guān)聯(lián)起來,比如使用 open()方法

使用完文件后,需要使用 close()方法將其關(guān)閉

還可以結(jié)合 ifstream 對(duì)象和運(yùn)算符>>來讀取各種類型的數(shù)據(jù)

可以用 cin 和 get() 方法來讀取一個(gè)字符,或用 cin 和 getline() 方法來讀取一行字符

可以結(jié)合使用 ifstream 和 eof()、fail()方法來判斷輸入是否成功

如果試圖打開一個(gè)不存在的文件用于輸入將會(huì)導(dǎo)致后面使用 ifstream 對(duì)象讀取數(shù)據(jù)時(shí)發(fā)生錯(cuò)誤,因此用戶需要使用 is_open() 方法檢查文件是否被成功打開,如下:

#include <fstream>
#include <cstdlib>
ifstream InFile;
InFile.open("information.txt");
if(!Infile.is_open()){
    exit(EXIT_FAILURE);
}

如果文件被成功打開, is_open() 方法將返回 true , exit()的原型在頭文件 cstdlib 中被定義,exit(EXIT_FAILURE) 用于終止程序。

下面請(qǐng)看一個(gè)完整的程序,用戶打開指定的文本文件,讀取文件中的 double 類型數(shù)據(jù),并在控制臺(tái)輸出所讀取數(shù)據(jù)的數(shù)目、總和以及平均數(shù):

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
const int SIZE = 60;
int main()
{
    char fileName[SIZE];
    ifstream InFile;
    cout<<"Enter the name of data file: ";
    cin.getline(fileName, SIZE);
    cout<<fileName<<endl;
    InFile.open(fileName);
    if(!InFile.is_open()){
        cout<<"Could not open the file "<< fileName <<endl;
        cout<<"Program terminating.\n";
        exit(EXIT_FAILURE);
    }
    double value;
    double sum = 0.0;
    int count = 0;
    InFile >> value;
    while(InFile.good()){      
        ++count;
        sum += value;
        InFile >> value;
    }
    if (InFile.eof())
        cout<<"End of file reached:\n";
    else if (InFile.fail())
        cout<<"Input terminated by data mismatch.\n";
    else
        cout<<"Input terminated for unknown reason.\n";
    if(count == 0)
        cout<<"No data processed.\n";
    else{
        cout<<"Items read: "<<count<<endl;
        cout<<"Sum: "<<sum<<endl;
        cout<<"Average: "<<sum/count<<endl;
    }
    InFile.close();
    return 0;
}

總結(jié)

到此這篇關(guān)于C++中簡單的文本文件輸入/輸出的文章就介紹到這了,更多相關(guān)C++文本文件輸入/輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 華為筆試算法題匯總

    華為筆試算法題匯總

    這篇文章主要為大家匯總了華為筆試算法題,每一題都給出了詳細(xì)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Cocos2d-x學(xué)習(xí)筆記之CCLayerColor層的使用實(shí)例

    Cocos2d-x學(xué)習(xí)筆記之CCLayerColor層的使用實(shí)例

    這篇文章主要介紹了Cocos2d-x學(xué)習(xí)筆記之CCLayerColor層的使用實(shí)例,CCLayerColor是一個(gè)顏色布景層類,本文依然使用Hello World作為例子講解,需要的朋友可以參考下
    2014-09-09
  • C++實(shí)現(xiàn)八皇后問題的方法

    C++實(shí)現(xiàn)八皇后問題的方法

    這篇文章主要介紹了C++實(shí)現(xiàn)八皇后問題的方法,是數(shù)據(jù)結(jié)構(gòu)與算法中常見的一個(gè)經(jīng)典算法,需要的朋友可以參考下
    2014-09-09
  • 詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化

    詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化

    在Java和C#中,StringBuilder可以創(chuàng)造可變字符序列來動(dòng)態(tài)地?cái)U(kuò)充字符串,那么在C++中我們同樣也可以實(shí)現(xiàn)一個(gè)StringBuilder并且用來提升性能,下面就來詳解C++中StringBuilder類的實(shí)現(xiàn)及其性能優(yōu)化
    2016-05-05
  • C語言函數(shù)指針的老生常談

    C語言函數(shù)指針的老生常談

    這篇文章主要為大家介紹了vue組件通信的幾種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Qt Quick Designer灰色或者禁用的解決

    Qt Quick Designer灰色或者禁用的解決

    本文主要介紹了Qt Quick Designer灰色或者禁用的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C語言寫一個(gè)散列表

    C語言寫一個(gè)散列表

    這篇文章主要介紹了C語言寫一個(gè)散列表,散列表,就是下標(biāo)可以為字母的數(shù)組。更多內(nèi)容和小編一起學(xué)習(xí)下面內(nèi)容吧
    2022-01-01
  • 一波C語言二元查找樹算法題目解答實(shí)例匯總

    一波C語言二元查找樹算法題目解答實(shí)例匯總

    這篇文章主要介紹了一波C語言二元查找樹算法題目解答實(shí)例匯總,包括按層次遍歷和轉(zhuǎn)換為鏡像等基本算法題目,需要的朋友可以參考下
    2016-03-03
  • C語言中不定參數(shù)?...?的語法以及函數(shù)封裝

    C語言中不定參數(shù)?...?的語法以及函數(shù)封裝

    不定參數(shù)是指函數(shù)可以接收不確定個(gè)數(shù)的參數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言中不定參數(shù)?...?的語法以及函數(shù)封裝的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • C++設(shè)計(jì)模式編程中的觀察者模式使用示例

    C++設(shè)計(jì)模式編程中的觀察者模式使用示例

    這篇文章主要介紹了C++設(shè)計(jì)模式編程中的觀察者模式使用示例,觀察者模式在被觀察者和觀察者之間建立一個(gè)抽象的耦合,需要的朋友可以參考下
    2016-03-03

最新評(píng)論