C++如何將運(yùn)行結(jié)果保存到txt中
將C++運(yùn)行結(jié)果保存到txt中
C++運(yùn)行完成后,有時(shí)需要將結(jié)果保存在類似txt等的文檔中,以便于后續(xù)查看或調(diào)用,那如何實(shí)現(xiàn)那?
可以選用fopen函數(shù),如下:
FILE * fp; fp = fopen ("file.txt", "w+"); fprintf(fp,"%c\n",Helloworld); fclose(fp);
fopen的定義為fopen ( “filename”, “mode” );
mode:w+(write/update: 為輸入和輸出創(chuàng)建一個(gè)空文件,如果文件已存在,則將已有文件內(nèi)容舍棄,按照空文件對(duì)待。)
按照上述函數(shù),更改之前的數(shù)組的程序,0-99存儲(chǔ)到數(shù)組中,并判定是否為5的倍數(shù),將運(yùn)行結(jié)果存儲(chǔ)到txt中。
int main() { int i,j; char result; FILE * fp; fp = fopen ("file.txt", "w+"); int array1[100]; for(i=0;i<100;i++) { array1[i]=i; } for(j=0;j<100;j++) { if( 0 == array1[j]%5) { result = 'Y'; } else { result = 'N'; } fprintf(fp,"%d\t%c\n",array1[j],result); } fclose(fp); return 0; }``` 注意:和之前程序相比,該程序中將判定結(jié)果Y和N均賦值給了result,簡化了代碼。
C++保存數(shù)據(jù)
再用C++編寫程序時(shí),你也許會(huì)發(fā)現(xiàn),每次的數(shù)據(jù)都得重新計(jì)算,可不可以將一些數(shù)據(jù)保存起來下次在使用呢?接下來就將學(xué)習(xí)C++保存數(shù)據(jù)的方法
方法一:freopen
說到保存數(shù)據(jù),我們最熟悉的肯定就是freopen
了,我們先來看看它的函數(shù)原型:
FILE *__cdecl freopen( const char * __restrict__ _Filename, const char * __restrict__ _Mode, FILE * __restrict__ _File )
_Filename
:是文件名,用于存儲(chǔ)輸入輸出的自定義文件名。_Mode
指文件打開的模式(如r-只讀
,w-只寫
等)。_File
:指一個(gè)文件,通常使用標(biāo)準(zhǔn)流文件。
我們先來看一個(gè)簡單的示例程序:
#include <bits/stdc++.h> using namespace std; int a; int main() { freopen("text.txt","w",stdout); //打開text.txt,并設(shè)置為輸出 cin>>a; cout<<a<<endl; //將a輸出到text.txt fclose(stdout); //關(guān)閉文件 return 0; }
運(yùn)行程序,在文件夾中找到生成的text.txt
,就可以看到輸出的值了,并且要記得用fclose
關(guān)閉,以便下次打開。在這里我們用的是w
,你也可以改成別的試試。
方法二:ifstream和ofstream
那么除了freopen
,還有沒有別的方法了呢?
答案是必然的,我們就繼續(xù)來學(xué)習(xí)ifstream
和ofstream
。
為了使用他們,我們需要在開頭添加一個(gè)頭文件。
#include <fstream>
我們?cè)賮矶x兩個(gè)變量,
ifstream fr; //讀入 ofstream fw; //輸出
這兩個(gè)變量分別表示讀入和輸出。我們先來看看fr
。
fr
有一個(gè)函數(shù)open
,用來打開文件,像下面這樣:
fr.open("text.txt");
了解了open
函數(shù)的用法,我們應(yīng)該怎樣讀入數(shù)據(jù)呢?
其實(shí)這也很簡單,它的用法和cin
幾乎一樣:
int a; //要讀入的數(shù) fr.open("text.txt"); //打開文件 fr>>a; //讀入一個(gè)數(shù)a fr.close(); //關(guān)閉文件
在最后一行,我們用了一個(gè)close
函數(shù),它用來關(guān)閉文件,和freopen
一樣,這是用來方便下次打開。
和ifstream
一樣,ofstream
也同樣有open
和close
:
ofstream fw; fw.open("text.txt"); //打開文件 fw<<"hello,world!"; //讀入一個(gè)數(shù)a fw.close(); //關(guān)閉文件
這個(gè)程序就可以在text.txt
中輸出了,你肯定會(huì)發(fā)現(xiàn),我們?cè)?strong>第3行用了<<
符號(hào),這和cout
完全一樣,的確,這就是他的方便之處。
最后,我們把他們整合起來:
#include <bits/stdc++.h> #include <fstream> //所需頭文件 using namespace std; int a; int main() { ofstream fw; ifstream fr; fr.open("text.txt"); //打開text.txt fr>>a; //從text.txt讀入一個(gè)數(shù) fr.close(); //關(guān)閉文件 cout<<"上次輸入的數(shù):"<<a<<endl; cout<<"輸入一個(gè)數(shù):"; cin>>a; fw.open("text.txt"); //打開text.txt fw<<a; //在text.txt中輸出一個(gè)數(shù) fw.close(); //關(guān)閉文件 return 0; }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c++ priority_queue用法入門超詳細(xì)教程
priority_queue即優(yōu)先級(jí)隊(duì)列,它的使用場(chǎng)景很多,它底層是用大小根堆實(shí)現(xiàn)的,可以用log(n)的時(shí)間動(dòng)態(tài)地維護(hù)數(shù)據(jù)的有序性,這篇文章主要介紹了c++ priority_queue用法入門超詳細(xì)教程,需要的朋友可以參考下2023-12-12C++獲得本機(jī)所有網(wǎng)卡的IP和MAC地址信息的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狢++獲得本機(jī)所有網(wǎng)卡的IP和MAC地址信息的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10詳解C++設(shè)計(jì)模式編程中建造者模式的實(shí)現(xiàn)
這篇文章主要介紹了C++設(shè)計(jì)模式編程中建造者模式的實(shí)現(xiàn),建造者模式將一個(gè)復(fù)雜對(duì)象的構(gòu)建于它的表現(xiàn)分離,可以減少代碼冗余,需要的朋友可以參考下2016-03-03C++ Boost Serialization庫超詳細(xì)獎(jiǎng)金額
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個(gè)可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-12-12