最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++Fstream文件流與freopen重定向操作教程

 更新時間:2020年02月24日 11:28:50   作者:EricNTH  
這篇文章主要介紹了C++Fstream文件流與freopen重定向教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

大家好,這是我第一次寫博客,請大家多多支持!
本文是作者原創(chuàng)文章,寫了好幾個小時,所以麻煩轉(zhuǎn)載請注明出處!

目錄freopen重定向fstream文件流freopen 重定向

使用方法:

freopen(“in.txt”,“r”,stdin);//從in.txt讀入
freopen(“out.txt”,“w”,stdout);//向out.txt輸出
freopen(“CON”,“r”,stdin);//從控制臺讀入
freopen(“CON”,“w”,stdout);//向控制臺輸出
fclose(stdin);//關(guān)閉輸入,可以省略,但建議加上
fclose(stdout);//關(guān)閉輸出,可以省略,但建議加上

默認(rèn)是從控制臺(Command)讀入,輸出哦!

實(shí)例

#include<iostream>
#include<cstdio>//freopen要包含cstdio頭文件
using namespace std;

int main() {
	freopen("in.txt","r",stdin);//從in.txt讀入
	freopen("out.txt","w",stdout);//向out.txt輸出
	int a;
	cin >> a;
	cout << a;
	fclose(stdin);//關(guān)閉輸入,可以省略,但建議加上
	fclose(stdout);//關(guān)閉輸出,可以省略,但建議加上
	return 0;
}

代碼寫好了,我們編譯,但先不要運(yùn)行。
然后再新建in.txt,往里面寫上666,保存,退出。


如圖

然后我們運(yùn)行main.exe,然后打開out.txt(可能有2,3秒的延遲,刷新即可)


如圖

瞧,成功了!

更多

stdin:標(biāo)準(zhǔn)輸入
stdout:標(biāo)準(zhǔn)輸出
“r”:Read,讀
“w”,Write,寫
由于fopen比較麻煩,我就不贅述了,可以去看其他博主的文章。
可以看一下這兩篇:  博客

博客還有fread和fwrite,大家可以借鑒以下。

優(yōu)缺點(diǎn)

使用方便,但不能方便在控制臺與文件之間轉(zhuǎn)換,且使用后system(“cls”)清屏?xí)А?/p>

fstream文件流
要使用fstream,您需要:

#include<fstream>
using namespace std;

兩個構(gòu)造函數(shù)的原型:

basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
basic_ofstream(const char* __s, ios_base::openmode __mode = ios_base::out|ios_base::trunc)

__s代表文件名,如"in.txt",也可以是絕對路徑,但最好不要有中文和空格。(前面freopen也是一樣)
ios_base::openmode即打開屬性,可以是下面幾種值:

ios::in 輸入(ifstream默認(rèn))
ios::out 輸出(ofstream默認(rèn))
ios::app(append)附加在末尾
ios::ate(at end)從末尾開始
ios::trunc有則覆蓋,無則創(chuàng)建
ios::nocreate如字面意思,如不存在則打開失敗
ios::noreplace如字面意思,如存在則打開失敗
ios::binary以二進(jìn)制形式打開/關(guān)閉,一般都會被忽略
如果要疊加多個屬性,用位或運(yùn)算符 | 連接即可。

實(shí)例

#include<iostream>
#include<fstream>//fstream
using namespace std;

int main() {
	ifstream fin("in.txt", ios::in/*可以省略*/);
	ofstream fout("out.txt", ios::out | ios::trunc/*可以省略*/);
	int a;
	fin >> a;
	fout << a << endl;
	fin.close();
	fout.close();
	return 0;
}

和剛剛結(jié)果一樣,就不放圖片了。
ifstream fin是創(chuàng)建了一個ifstream對象(就像cin是iostream已經(jīng)幫我們創(chuàng)建的一個istream對象)
ofstream fout和上面差不多。
.close()一定要加!不然可能出錯!??!
這里這么取名,只是本人習(xí)慣,大家起其他的也行。

成員函數(shù)

fstream的成員函數(shù)是真心多啊,怪不得功能強(qiáng)大!
這里只給大家介紹一些常用的。
這里只給大家介紹istream,ostream基本一樣。

fin.open(const char* __s, ios_base::openmode __mode = ios_base::in);

和構(gòu)造函數(shù)差不多,不解釋了。

if (!fin/*或fin.bad()或!fin.good()*/) {
	cout << "Unable to open!" << endl;
	return 0;
}

這個也很好懂,不解釋。

fin.eof()
fin.fail()
fin.bad()
fin.good()

四個函數(shù)返回值都是bool。
如果遇到文件末尾,則eof返回true。
如果操作失敗,則fail返回true。
如果eof和fail都返回false,則bad返回false。
如果bad返回false,則good返回true。
很繞,是不是!其實(shí),根據(jù)字面意思,都很好懂。
還有各種各樣的功能,請大家自己去探索吧!
再給大家推薦一個博客吧,大家自己去看:博客
還有,希望大家養(yǎng)成一個好習(xí)慣,再打開文件后,使用

if(!fin) cout << "Fin open Fail" << endl;
if(!fout) cout << "Fout open Fail" << endl;

來檢測是否成功!這樣做最保險!

優(yōu)缺點(diǎn)
操作較為麻煩。但是功能挺多的,且十分強(qiáng)大!

總結(jié)

到此這篇關(guān)于C++Fstream文件流與freopen重定向操作教程的文章就介紹到這了,更多相關(guān)C++ Fstream文件流與freopen重定向內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 開發(fā)之實(shí)現(xiàn)操作符重載的實(shí)例

    C++ 開發(fā)之實(shí)現(xiàn)操作符重載的實(shí)例

    這篇文章主要介紹了C++ 開發(fā)之實(shí)現(xiàn)操作符重載的實(shí)例的相關(guān)資料,這里附有實(shí)例代碼和實(shí)現(xiàn)效果圖幫助大家參考實(shí)踐,需要的朋友可以參考下
    2017-07-07
  • 用C語言來實(shí)現(xiàn)一個簡單的虛擬機(jī)

    用C語言來實(shí)現(xiàn)一個簡單的虛擬機(jī)

    這篇文章主要介紹了用C語言來實(shí)現(xiàn)一個簡單的虛擬機(jī),其中棧數(shù)組的部分非常值得學(xué)習(xí),需要的朋友可以參考下
    2015-07-07
  • QT實(shí)現(xiàn)貪吃蛇游戲

    QT實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++?pthread入門指南

    C++?pthread入門指南

    pthread是C++98接口且只支持Linux,使用時需要包含頭文件#include?<pthread.h>,編譯時需要鏈接pthread庫,其中p是POSIX的縮寫,而POSIX是Portable?Operating?System?Interface的縮寫,這篇文章主要介紹了C++?pthread簡介,需要的朋友可以參考下
    2024-05-05
  • C++直接cout指針名的含義?

    C++直接cout指針名的含義?

    今天小編就為大家分享一篇關(guān)于C++直接cout指針名的含義?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 一篇文章帶你入門C語言:函數(shù)

    一篇文章帶你入門C語言:函數(shù)

    這篇文章主要介紹了C語言中函數(shù)的聲明、定義及使用的入門教程,重點(diǎn)講述了main函數(shù)的相關(guān)知識,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • C++用一棵紅黑樹同時封裝出set與map的實(shí)現(xiàn)代碼

    C++用一棵紅黑樹同時封裝出set與map的實(shí)現(xiàn)代碼

    set中存儲的一般為鍵K即可,而map存儲的一般都是鍵值對KV,也就是說他們結(jié)構(gòu)是不同的,那么我們?nèi)绾尾拍苡靡活w紅黑樹同時封裝出set與map兩種容器呢,那么接下來我們具體地來研究下STL庫中是怎樣實(shí)現(xiàn)的,并且進(jìn)行模擬實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • OpenCV實(shí)現(xiàn)拼圖算法

    OpenCV實(shí)現(xiàn)拼圖算法

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)拼圖算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 數(shù)據(jù)結(jié)構(gòu)串的操作實(shí)例詳解

    數(shù)據(jù)結(jié)構(gòu)串的操作實(shí)例詳解

    這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)串的操作實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C語言之地址傳遞和引用傳遞的問題

    C語言之地址傳遞和引用傳遞的問題

    這篇文章主要介紹了C語言之地址傳遞和引用傳遞的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

龙海市| 兰坪| 安新县| 正宁县| 宁河县| 汪清县| 阿拉善右旗| 巴林右旗| 耿马| 两当县| 乐山市| 全南县| 迁西县| 东安县| 北票市| 香格里拉县| 郎溪县| 腾冲县| 木兰县| 万宁市| 延边| 韶关市| 图木舒克市| 嵊州市| 屏山县| 康保县| 涡阳县| 长沙县| 昌都县| 缙云县| 钟祥市| 金堂县| 西林县| 易门县| 琼中| 永清县| 泊头市| 沧源| 大兴区| 木里| 交城县|