C 之簡單檔案的輸入與輸出

2021-07-30 11:26:19 字數 2083 閱讀 9884

c++可以通過

cin與

cout

來讀取鍵盤的輸入與輸出,也可以從乙個

txt檔案中讀取輸入與輸出

這就要用到fstream中的ofstream類了

一、將資料寫入文字檔案

1、首先需要宣告

ofstream

物件,這就根本宣告基本型別變數類似

例如:ofstream outfile;

2、然後要將宣告的

ofstream

物件與檔案關聯起來,可以使用

open

()方法

outfile.open(「price.txt」);

如果關聯的檔案不存在的話,open()將會自動建立乙個關聯名字的檔案,如果存在的話,

open()會清除檔案中的內容,然後將新的輸入加入到檔案中

3、使用完以後要用

close

()將其關閉,如果忘了關閉的話,程式在終止的時候會自動關閉

不過如果你在乙個程式中同時進行輸入輸出的話,記得要關閉,不然將會無法輸入

這樣進行以後,就可以像使用cout那樣使用它了,所有可以用於

cout

的操作都可以用於

ofstream 物件

二、讀取文字檔案

讀取文字檔案流程大致與寫入文字檔案類似,這裡就大概的說一下

1、宣告ifstream物件

2、將物件與檔案關聯起來

3、使用完以後用close()關閉

ifstream infile;

infile.open(「price.txt」);

使用方法同cin

這裡不同的是,必須要判斷是否開啟檔案並讀取成功,如果開啟乙個不存在的檔案將會導致使用ifstream物件失敗

這裡可以使用is_open()來判斷是否開啟成功

if(!infile.is_open())

exit(exit_failure); //退出程式

怎麼判斷讀取是否到達結尾呢?

這就要用到eof()和

fail()了

如果到達結尾eof()和

fail()

將會返回

true

否則會返回

false

fail()也可以用來檢查型別不匹配

如果發生了型別不匹配,方法fail()會返回

true

否則返回

false

good()方法將會在沒有任何錯誤的情況下返回

true

,可以用來判斷是否發生了意外的狀況,比如檔案受損什麼的

下面是我做的乙個例子

主要作用是先向檔案中輸入一些字串,然後讀取輸入

#include

"stdafx.h"

#include

#include

#include

#include

int main()

using

namespace std;

ofstream outfile;

outfile.open("fish.txt");

string str1;

getline(cin, str1);

outfile << str1;

outfile.close();

ifstream infile;

infile.open("fish.txt");

if (!infile.is_open())   //沒有成功開啟時提示

cout <<

"could not open the file\n";

cout <<

"program terinatinf.\n";

exit(exit_failure);

int count=0;

char wd;

infile >> wd;

while (infile.good()&&!infile.fail())//沒有錯誤和到達檔案尾

++count;

infile >> wd;

cout << count;

infile.close();

return 0;

C 入門之簡單檔案輸入 輸出

使用cin輸入時,程式將輸入視為一系列的位元組,其中每個位元組都被解釋為位元組編碼。不管目標資料型別是什麼,輸入一開始都是字元資料 文字資料。然後,cin物件負責將文字轉換為其他型別。對於輸入,將執行相反的轉換,即整數被轉換為數字字串行,浮點數被轉換為數字字元和其他字元組成的字串行 如284.53或...

C 簡單檔案輸入 輸出

c 提供了一系列的方法,使得將讀取鍵盤輸入和在螢幕上顯示輸出 統稱為控制台輸入 輸出 的技巧用於檔案輸入 輸出 檔案i o 非常簡單,具體如下文 使用cin進行輸入時,程式將輸入視為一系列的位元組,其中每個位元組都被解釋為字元編碼。也就是說 不管目標的資料型別是什麼,輸入一開始都是字元資料 文字資料...

C 簡單的檔案輸入輸出

輸出到文字 include include int main 從文字輸入 include include include const int size 60 int main double value double sum 0.0 int count 0 infile value while inf...