如何使用C語(yǔ)言將數(shù)字、字符等數(shù)據(jù)寫(xiě)入、輸出到文本文件中
最近在調(diào)試程序,想把過(guò)程中需要查看的數(shù)據(jù)輸出到文件中,因此將簡(jiǎn)單的小方法分享一下
1.首先需要聲明一個(gè)文件指針變量
FILE* fp;
2.接下來(lái)需要對(duì)這個(gè)指針變量進(jìn)行初始化
fp = fopen("在這里填寫(xiě)你自己的路徑", "這里填寫(xiě)讀寫(xiě)方式");
現(xiàn)在介紹一下路徑填寫(xiě)和C語(yǔ)言中的讀寫(xiě)方式:
路徑示例:"E:/rtklib/rtklib-test1/res.txt"
讀寫(xiě)方式:
- r 以只讀方式打開(kāi)文件,但該文件必須存在。
- r+ 以可讀寫(xiě)方式打開(kāi)文件,但該文件必須存在。
- rb+ 讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀寫(xiě)數(shù)據(jù)。
- rt+ 讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀寫(xiě)數(shù)據(jù)。
- w 打開(kāi)只寫(xiě)文件,若文件存在則文件長(zhǎng)度清為0,內(nèi)容清空。若文件不存在則建立該文件。
- w+ 打開(kāi)可讀寫(xiě)文件,若文件存在則文件長(zhǎng)度清為0,內(nèi)容清空。若文件不存在則建立該文件。
- a 以附加的方式打開(kāi)只寫(xiě)文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫(xiě)入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。(EOF符保留)
- a+ 以附加方式打開(kāi)可讀寫(xiě)的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫(xiě)入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。(原來(lái)的EOF符不保留)
- wb 只寫(xiě)打開(kāi)或新建一個(gè)二進(jìn)制文件;只允許寫(xiě)數(shù)據(jù)。
- wb+ 讀寫(xiě)打開(kāi)或建立一個(gè)二進(jìn)制文件,允許讀和寫(xiě)。
- wt+ 讀寫(xiě)打開(kāi)或著建立一個(gè)文本文件;允許讀寫(xiě)。
- at+ 讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀或在文本末追加數(shù)據(jù)。
- ab+ 讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
3.然后開(kāi)始利用相應(yīng)函數(shù)將數(shù)據(jù)寫(xiě)入文件
這里可以使用到很多函數(shù),比如fwrite,fprintf
我這次使用的是fprintf函數(shù),使用方式如下:
fprintf(fp,"$SAT,%d,%.3f,%s,%d,%.1f,%.1f,%.4f,%.4f,%d,%.1f,%d,%d,%d,%d,%d,%d\n",
week,tow,id,j+1,ssat->azel[0]*R2D,ssat->azel[1]*R2D,
ssat->resp[j],ssat->resc[j],ssat->vsat[j],
ssat->snr[j]*SNR_UNIT,ssat->fix[j],ssat->slip[j]&3,
ssat->lock[j],ssat->outc[j],ssat->slipc[j],ssat->rejc[j]);
其中fp為打開(kāi)的文件;"$SAT,%d,%.3f,%s,%d,%.1f,%.1f,%.4f,%.4f,%d,%.1f,%d,%d,%d,%d,%d,%d\n"表示需要寫(xiě)入的數(shù)據(jù)的類(lèi)型,這里有整形,浮點(diǎn)型和字符串類(lèi)型; \n為換行符
week,tow,id,j+1,ssat->azel[0]*R2D,ssat->azel[1]*R2D,
ssat->resp[j],ssat->resc[j],ssat->vsat[j],
ssat->snr[j]*SNR_UNIT,ssat->fix[j],ssat->slip[j]&3,
ssat->lock[j],ssat->outc[j],ssat->slipc[j],ssat->rejc[j]);
后面這些就是要寫(xiě)入的數(shù)據(jù)
4.最后一步,也是關(guān)鍵的一步
寫(xiě)完之后,一定要使用fclose關(guān)閉文件,否則系統(tǒng)可能會(huì)崩潰!
fclose(fp);
總結(jié)
到此這篇關(guān)于如何使用C語(yǔ)言將數(shù)字、字符等數(shù)據(jù)寫(xiě)入、輸出到文本文件中的文章就介紹到這了,更多相關(guān)C語(yǔ)言數(shù)據(jù)寫(xiě)入輸出到文本文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++內(nèi)存池的簡(jiǎn)單實(shí)現(xiàn)
內(nèi)存池是一種動(dòng)態(tài)內(nèi)存分配與管理技術(shù)。本文主要介紹了C++內(nèi)存池的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
C++實(shí)現(xiàn)二叉樹(shù)非遞歸遍歷方法實(shí)例總結(jié)
這篇文章主要介紹了C++實(shí)現(xiàn)二叉樹(shù)非遞歸遍歷方法實(shí)例總結(jié),是算法設(shè)計(jì)中比較經(jīng)典的一個(gè)遍歷算法,需要的朋友可以參考下2014-08-08
Qt5開(kāi)發(fā)視頻播放器的項(xiàng)目實(shí)踐
Qt對(duì)音視頻的播放和控制、相機(jī)拍攝、收音機(jī)等多媒體應(yīng)用提供了強(qiáng)大的支持,本文主要介紹了Qt5開(kāi)發(fā)視頻播放器,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
C語(yǔ)言實(shí)現(xiàn)自動(dòng)存取款機(jī)模擬系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)自動(dòng)存取款機(jī)模擬系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
C語(yǔ)言中操作utmp文件的相關(guān)函數(shù)用法
C++數(shù)據(jù)精度問(wèn)題(對(duì)浮點(diǎn)數(shù)保存指定位小數(shù))

