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ù)保存起來下次在使用呢?接下來就將學(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:是文件名,用于存儲輸入輸出的自定義文件名。_Mode指文件打開的模式(如r-只讀,w-只寫等)。_File:指一個文件,通常使用標準流文件。
我們先來看一個簡單的示例程序:
#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;
}運行程序,在文件夾中找到生成的text.txt,就可以看到輸出的值了,并且要記得用fclose關(guān)閉,以便下次打開。在這里我們用的是w,你也可以改成別的試試。
方法二:ifstream和ofstream
那么除了freopen,還有沒有別的方法了呢?
答案是必然的,我們就繼續(xù)來學(xué)習(xí)ifstream和ofstream。
為了使用他們,我們需要在開頭添加一個頭文件。
#include <fstream>
我們再來定義兩個變量,
ifstream fr; //讀入 ofstream fw; //輸出
這兩個變量分別表示讀入和輸出。我們先來看看fr。
fr有一個函數(shù)open,用來打開文件,像下面這樣:
fr.open("text.txt");了解了open函數(shù)的用法,我們應(yīng)該怎樣讀入數(shù)據(jù)呢?
其實這也很簡單,它的用法和cin幾乎一樣:
int a; //要讀入的數(shù)
fr.open("text.txt"); //打開文件
fr>>a; //讀入一個數(shù)a
fr.close(); //關(guān)閉文件在最后一行,我們用了一個close函數(shù),它用來關(guān)閉文件,和freopen一樣,這是用來方便下次打開。
和ifstream一樣,ofstream也同樣有open和close:
ofstream fw;
fw.open("text.txt"); //打開文件
fw<<"hello,world!"; //讀入一個數(shù)a
fw.close(); //關(guān)閉文件這個程序就可以在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(); //關(guān)閉文件
cout<<"上次輸入的數(shù):"<<a<<endl;
cout<<"輸入一個數(shù):";
cin>>a;
fw.open("text.txt"); //打開text.txt
fw<<a; //在text.txt中輸出一個數(shù)
fw.close(); //關(guān)閉文件
return 0;
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法
下面小編就為大家?guī)硪黄狢++獲得本機所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
詳解C++設(shè)計模式編程中建造者模式的實現(xiàn)
這篇文章主要介紹了C++設(shè)計模式編程中建造者模式的實現(xiàn),建造者模式將一個復(fù)雜對象的構(gòu)建于它的表現(xiàn)分離,可以減少代碼冗余,需要的朋友可以參考下2016-03-03
C++ Boost Serialization庫超詳細獎金額
Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱2022-12-12

