欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

利用C語言怎么對文件進行讀寫操作-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)利用C語言怎么對文件進行讀寫操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為烏海海南等服務(wù)建站,烏海海南等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為烏海海南企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

文件的打開函數(shù)fopen()

文件的打開操作表示將給用戶指定的文件在內(nèi)存分配一個FILE結(jié)構(gòu)區(qū),并將該結(jié)構(gòu)的指針返回給用戶程序,以后用戶程序就可用此FILE指針來實現(xiàn)對指定文件的存取操作了。當(dāng)使用打開函數(shù)時,必須給出文件名、文件操作方式(讀、寫或讀寫),如果該文件名不存在,就意味著建立(只對寫文件而言,對讀文件則出錯),并將文件指針指向文件開頭。若已有一個同名文件存在,則刪除該文件,若無同名文件,則建立該文件,并將文件指針指向文件開頭。

fopen(char *filename,char *type);

其中filename是要打開文件的文件名指針,一般用雙引號括起來的文件名表示,也可使用雙反斜杠隔開的路徑名。而type參數(shù)表示了對打開文件的操作方式。其可采用的操作方式如下: 方式 含義 “r” 打開,只讀; “w” 打開,文件指針指到頭,只寫; “a” 打開,指向文件尾,在已存在文件中追加; “rb” 打開一個二進制文件,只讀; “wb” 打開一個二進制文件,只寫; “ab” 打開一個二進制文件,進行追加 ;“r+” 以讀/寫方式打開一個已存在的文件; “w+” 以讀/寫方式建立一個新的文本文件 ;“a+” 以讀/寫方式打開一個文件文件進行追加 ;“rb+” 以讀/寫方式打開一個二進制文件; “wb+” 以讀/寫方式建立一個新的二進制文件 ;“ab+” 以讀/寫方式打開一個二進制文件進行追加 ;當(dāng)用fopen()成功的打開一個文件時,該函數(shù)將返回一個FILE指針,如果文件打開失敗,將返回一個NULL指針。

關(guān)閉文件函數(shù)fclose()

文件操作完成后,必須要用fclose()函數(shù)進行關(guān)閉,這是因為對打開的文件進行寫入時,若文件緩沖區(qū)的空間未被寫入的內(nèi)容填滿,這些內(nèi)容不會寫到打開的文件中去而丟失。只有對打開的文件進行關(guān)閉操作時,停留在文件緩沖區(qū)的內(nèi)容才能寫到該文件中去,從而使文件完整。再者一旦關(guān)閉了文件,該文件對應(yīng)的FILE結(jié)構(gòu)將被釋放,從而使關(guān)閉的文件得到保護,因為這時對該文件的存取操作將不會進行。文件的關(guān)閉也意味著釋放了該文件的緩沖區(qū)。

int fclose(FILE *stream);

它表示該函數(shù)將關(guān)閉FILE指針對應(yīng)的文件,并返回一個整數(shù)值。若成功地關(guān)閉了文件,則返回一個0值,否則返回一個非0值。

int read(int handle, void *buf, int count);

read()函數(shù)從handle(文件描述字)相連的文件中, 讀取count個字節(jié)放到buf所指的緩沖區(qū)中, 返回值為實際所讀字節(jié)數(shù), 返回-1表示出錯。返回0 表示文件結(jié)束。

write()函數(shù)的調(diào)用格式為:

int write(int handle, void *buf, int count);

write()函數(shù)把count個字節(jié)從buf指向的緩沖區(qū)寫入與handle相連的文件中, 返回值為實際寫入的字節(jié)數(shù)。

size_t fread( void *buffer, size_t size, size_t count, FILE *stream )

buffer 是讀取的數(shù)據(jù)存放的內(nèi)存的指針(可以是數(shù)組,也可以是新開辟的空間,buffer就是一個索引)


size 是每次讀取的字節(jié)數(shù)


count 是讀取次數(shù)


stream 是要讀取的文件的指針

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

其中,ptr:指向保存數(shù)據(jù)的指針;size:每個數(shù)據(jù)類型的大小;count:數(shù)據(jù)的個數(shù);stream:文件指針 ; 函數(shù)返回寫入數(shù)據(jù)的個數(shù)。

fseek


函數(shù)名: fseek


功 能: 重定位流上的文件指針


用 法: int fseek(FILE *stream, long offset, int fromwhere);


描 述: 函數(shù)設(shè)置文件指針stream的位置。如果執(zhí)行成功,stream將指向以fromwhere為基準(zhǔn),偏移offset個字 節(jié)的位置。

如果執(zhí)行失敗(比如offset超過文件自身大小),則不改變stream指向的位置。


返回值: 成功,返回0,否則返回其他值。


fromwhere有三個可選值:SEEK_SET 開始 SEEK_CUR現(xiàn)在指針?biāo)傅奈恢?SEEK_END末尾

ftell


用于得到二進制文件位置指針當(dāng)前位置相對于文件首的偏移字節(jié)數(shù)。在隨機方式存取文件時,由于文件位置頻繁的前后移動,程序不容易確定文件的當(dāng)前位置。


long ftell(FILE *stream);

int fprintf(FILE *stream,char *format,variable-list)
int fscanf(FILE *stream,char *format,variable-list)

fprintf()則是向流指針指向的文件輸出;fscanf()是從文件輸入

簡單的例子:先讀取文件內(nèi)容,再向文件寫數(shù)據(jù)

#include "pch.h"
#include <iostream>
#include<stdio.h>
#include<stdlib.h>

using namespace std;
int main()
{
 const char *filename ="test.txt";
 FILE *fp;
 //以追加讀寫的方式打開文件
 fopen_s(&fp,"test.txt","ab+");
 if (!fp) {
 printf("open file %s failed!", filename);
 }
 //統(tǒng)計文件大小
 fseek(fp,0,SEEK_END); 
 int len = ftell(fp);
 //若使用fseek,ftell統(tǒng)計文件大小,那么在獲得大小后要將指針移回原來的位置,因為fseek會改變指針的位置
 fseek(fp,0,0); 
 //保存從文件中讀去的數(shù)據(jù)
 char buf[10000] = {0};
 //讀取文件
 fread(buf,len,1,fp);
 //關(guān)閉
 fclose(fp); 
 //重新打開,不然會寫入失敗,不知道為什么
 fopen_s(&fp, "test.txt", "ab+"); 
 cout << buf << endl;
 //保存寫入文件的內(nèi)容
 char writebuf[1024];
 char ch = 0;
 int i = 0;
 //讀取輸入字符,以換行符結(jié)束
 while ((ch=getchar())!='\n') {
 writebuf[i++] = ch;
 }
 writebuf[i++] = '\n';
 writebuf[i++] = '\0';
 //向文件末尾添加數(shù)據(jù)
 int flen=fwrite(writebuf,i,1,fp);
 //關(guān)閉數(shù)據(jù)
 fclose(fp);
 return 0;
}

看完上述內(nèi)容,你們對利用C語言怎么對文件進行讀寫操作有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

本文名稱:利用C語言怎么對文件進行讀寫操作-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article24/cdjdje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站營銷、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計微信公眾號、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
少妇激情在线免费观看| 人妻内射在线二区一区| 亚洲国产天堂av成人在线播放| 亚洲熟妇熟女久久精品 | 国产成人免费高潮激情电| 免费一级欧美大片免费看| 在线视频三区日本精品| 又色又爽又无遮挡的视频| 69老司机精品视频在线观看| 懂色一区二区三区四区| 不卡视频免费一区二区三区| 99精品国产自在现线观看| 大香蕉精品视频一区二区| 狠狠做五月深爱婷婷综合| 少妇丰满a一区二区三区| 国产成人av在线免播放观看av| 免费观看在线午夜视频| 91人妻久久精品一区二区三区| 男人和女人黄 色大片| 精品人妻一区二区三区四区久久| 国内九一激情白浆发布| 欧美日韩一区二区午夜| 国产精品免费视频久久| 国产在线一区二区免费| 91欧美日韩国产在线观看| 国产一级内片内射免费看| 激情内射亚洲一区二区三区| 久久精品免费视看国产成人 | 欧美一级特黄大片做受大屁股| 亚洲国产欧美精品久久| 国产一区二区三区丝袜不卡 | 欧美日韩在线第一页日韩| 亚洲欧洲一区二区综合精品| 国产成人精品国产亚洲欧洲| 91欧美日韩中在线视频| 在线观看视频日韩成人| 观看日韩精品在线视频| 国产精品激情对白一区二区| 亚洲精品一区三区三区| 日韩欧美三级中文字幕| 少妇福利视频一区二区|