C++如何將運行結(jié)果保存到txt中
將C++運行結(jié)果保存到txt中
C++運行完成后,有時需要將結(jié)果保存在類似txt等的文檔中,以便于后續(xù)查看或調(diào)用,那如何實現(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)建一個空文件,如果文件已存在,則將已有文件內(nèi)容舍棄,按照空文件對待。)
按照上述函數(shù),更改之前的數(shù)組的程序,0-99存儲到數(shù)組中,并判定是否為5的倍數(shù),將運行結(jié)果存儲到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++編寫程序時,你也許會發(fā)現(xiàn),每次的數(shù)據(jù)都得重新計算,可不可以將一些數(shù)據(jù)保存起來下次在使用呢?接下來就將學習C++保存數(shù)據(jù)的方法
方法一:freopen
說到保存數(shù)據(jù),我們最熟悉的肯定就是freopen
了,我們先來看看它的函數(shù)原型:
FILE *__cdecl freopen( const char * __restrict__ _Filename, const char * __restrict__ _Mode, FILE * __restrict__ _File )
_Filename
:是文件名,用于存儲輸入輸出的自定義文件名。_Mode
指文件打開的模式(如r-只讀
,w-只寫
等)。_File
:指一個文件,通常使用標準流文件。
我們先來看一個簡單的示例程序:
#include <bits/stdc++.h> using namespace std; int a; int main() { freopen("text.txt","w",stdout); //打開text.txt,并設置為輸出 cin>>a; cout<<a<<endl; //將a輸出到text.txt fclose(stdout); //關閉文件 return 0; }
運行程序,在文件夾中找到生成的text.txt
,就可以看到輸出的值了,并且要記得用fclose
關閉,以便下次打開。在這里我們用的是w
,你也可以改成別的試試。
方法二:ifstream和ofstream
那么除了freopen
,還有沒有別的方法了呢?
答案是必然的,我們就繼續(xù)來學習ifstream
和ofstream
。
為了使用他們,我們需要在開頭添加一個頭文件。
#include <fstream>
我們再來定義兩個變量,
ifstream fr; //讀入 ofstream fw; //輸出
這兩個變量分別表示讀入和輸出。我們先來看看fr
。
fr
有一個函數(shù)open
,用來打開文件,像下面這樣:
fr.open("text.txt");
了解了open
函數(shù)的用法,我們應該怎樣讀入數(shù)據(jù)呢?
其實這也很簡單,它的用法和cin
幾乎一樣:
int a; //要讀入的數(shù) fr.open("text.txt"); //打開文件 fr>>a; //讀入一個數(shù)a fr.close(); //關閉文件
在最后一行,我們用了一個close
函數(shù),它用來關閉文件,和freopen
一樣,這是用來方便下次打開。
和ifstream
一樣,ofstream
也同樣有open
和close
:
ofstream fw; fw.open("text.txt"); //打開文件 fw<<"hello,world!"; //讀入一個數(shù)a fw.close(); //關閉文件
這個程序就可以在text.txt
中輸出了,你肯定會發(fā)現(xiàn),我們在第3行用了<<
符號,這和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讀入一個數(shù) fr.close(); //關閉文件 cout<<"上次輸入的數(shù):"<<a<<endl; cout<<"輸入一個數(shù):"; cin>>a; fw.open("text.txt"); //打開text.txt fw<<a; //在text.txt中輸出一個數(shù) fw.close(); //關閉文件 return 0; }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法
下面小編就為大家?guī)硪黄狢++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10C++ Boost Serialization庫超詳細獎金額
Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱2022-12-12