亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

關于C語言文件操作方法

2020-05-23 13:33:44
字體:
來源:轉載
供稿:網友

關于C語言的文件操作之前我也寫過一篇教程來介紹,但是當時寫的很不全面,只是簡單的使用了一下 ,今天再從新學習一下。

1、文件的寫

首先還是先看一個簡單的例子:

include<stdio.h>int main(){ FILE *fp; //聲明一個文件指針,指向文件緩沖區的首地址  char ch; if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打開可讀寫文件,若文件存在則清零,不存在則新建文件,a 模式不清零  {  printf("Cannot open file, press any key to exit!"); //文件無法打開  }  printf("Input a string:/n"); while ((ch = getchar()) != '/n' ) {  putc(ch,fp); //該函數將字符寫入文件,與 fputc 的區別?  } fclose(fp);  return 0;}

這個例子就是實現打開或新建一個文本文件,然后寫入用戶在控制臺輸入的數據。

關于文件操作首先是:

FILE *fp;

這個FILE是文件類型標識符,是C編譯系統定義好的一個結構體類型,結構體中含有文件名、文件狀態等信息。
其定義一個指針變量fp,該變量用于指向一個文件,存放的是文件緩沖區的首地址。該指針又叫文件指針,

文件指針是一個指向文件開頭的指針。使用文件指針,我們可以打開或者關閉一個文件,同時,我們也可以使用文件指針將數據的讀寫位置移動到文件的任意字節位置。

然后使用fopen函數打開或新建一個文件:

fopen() 函數用來打開一個文件,該函數接受兩個字符串類型的參數:文件名(filename)、打開模式(open mode)
fopen("filename","open mode")

當使用該函數打開一個文件時,返回一個指針,該指針指向文件的開始位置,稱為文件指針,那么為了接收它返回的文件指針,我們需要事先聲明一個文件指針: FILE *fp

如果因為某些系統內部原因導致文件無法打開,則函數返回空指針 NULL

所以為了避免文件打開失敗導致的程序異常,打開文件一般按照如下格式:

 if( (fp = fopen("file_1.txt","a")) == NULL ) //w+打開可讀寫文件,若文件存在則清零,不存在則新建文件,a 模式不清零  {  printf("Cannot open file, press any key to exit!"); //文件無法打開  }

關于文件打開的模式,我在上一篇文件操作的博客中詳細介紹了,鏈接:http://www.49028c.com/article/135845.htm

在下面就是獲取用戶輸入,使用一個while循環持續的獲取輸入,

 while ((ch = getchar()) != '/n' ) {  putc(ch,fp);  }

再此使用 /n 作為結束標志,即只能在控制臺輸入一行字符串,若使用EOF,則可以多行輸入,用 ctrl+z 表示輸入結束,該組合鍵代表標準輸入文件的結束。

下一句   putc(ch,fp);  就是吧用戶輸入的字符寫入文件,注意這里是一個字符一個字符寫入的,因為輸入用的是getchar函數,如果是字符串輸入寫入的話,可以使用 fputc()函數直接寫入一個字符串。

最后也是非常重要的一部,對文件讀寫完畢后需要關閉文件,防止文件打開過多造成的文件讀寫混亂。

使用  fclose()函數關閉一個文件,

關閉文件,正常關閉時返回0,否則返回1

關閉時,系統會清除緩沖區,并把數據輸出到磁盤文件,釋放緩沖單元,使文件指針與具體文件脫鉤。

    fclose(fp);   

2、文件的讀

到這里關于文件的寫操作就基本上是這些,下面是關于文件的讀操作,其實和寫差不多。

還是先看一下完整的代碼,方便和上面的寫操作對比:

#include <stdio.h>#include <stdlib.h>int main(){ FILE *fp; char ch;  char str[80]; char file_name[15]; //輸入文件名稱緩沖  //如果文件和本程序在同一個文件下面,則直接輸入txt文件名即可  //如果不在同一目錄下面,則需要輸入完整文件路徑格式  //如 : e://test.txt  printf("please enter the filename: "); //注意輸入文件名時需要帶上文件的后綴.txt  gets(file_name); //gets函數用來讀取用戶輸入的字符串,專門針對字符串處理設計的   if((fp = fopen(file_name,"r")) == NULL ) //r模式不能寫入數據,只能讀取  {  printf("Cannot open file, press any key to exit!/n"); //文件無法打開   exit(0);  }/*  while( (ch = getc(fp)) != EOF )  //getc函數從文件中讀取單個字符  {  putchar(ch);     //循環輸出單個字符  } putchar('/n'); //輸出一個換行 */  while((fgets(str,80,fp)) != NULL)   puts(str);    fclose(fp);}

開始的打開文件方式和寫操作的差不多,就是多了一個用戶自己輸入文件的路徑和名稱。

然后程序用了兩種方式來讀取文件內容,一個是使用fgetc函數讀取單個字符,然后輸出,一直循環,直到讀取到文件的末尾。

另一種方式是使用特殊的   fgets()  函數來一次性讀取80個字節的內容:

fgets   函數從 fp 文件中讀取 80 個字節的數據到str數組中,然后用 puts 函數輸出。

當到達文件末尾時, 函數返回 NULL,若要持續讀出字符串,則循環檢測每次讀出80個字節后是否到達文件末尾。

以上所述是小編給大家介紹的關于C語言文件操作方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩免费网站| 国内精久久久久久久久久人| 久久国产精品亚洲| 日韩视频免费看| 亚洲一区二区久久久久久| 欧美大片va欧美在线播放| 亚洲精品在线不卡| 久久免费少妇高潮久久精品99| 一区二区三区动漫| 国产精品第七影院| 亚洲国模精品私拍| 亚洲欧美另类国产| 孩xxxx性bbbb欧美| 伊人av综合网| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲精品国精品久久99热一| 国产91色在线| 91久久综合亚洲鲁鲁五月天| 久久精品视频中文字幕| 久久av.com| 国产日韩精品综合网站| 九色精品美女在线| 国产精品入口日韩视频大尺度| 欧美激情成人在线视频| 久久久电影免费观看完整版| 日韩网站免费观看| 国产精品成人v| 久久九九国产精品怡红院| 国产精品久久久久久久久借妻| 亚洲成人av片| 黑人狂躁日本妞一区二区三区| 欧美国产亚洲视频| 亚洲视频欧美视频| 国产午夜精品理论片a级探花| 国a精品视频大全| 欧美成人全部免费| 国产午夜精品久久久| 中文字幕av一区| 日韩av一区在线| 日韩国产在线播放| 国产精品欧美亚洲777777| 久久九九全国免费精品观看| 美女扒开尿口让男人操亚洲视频网站| 国产精品三级网站| 色青青草原桃花久久综合| 久久久国产精品视频| 91夜夜未满十八勿入爽爽影院| 日韩在线观看电影| www.欧美精品一二三区| 国产激情综合五月久久| 欧美专区在线观看| 亚洲视频在线观看| 97av在线播放| 亚洲深夜福利在线| 日韩美女视频中文字幕| 一本色道久久综合狠狠躁篇怎么玩| 国产精品网址在线| 日韩欧美国产高清91| 国产一区二区黑人欧美xxxx| 九九热最新视频//这里只有精品| 欧美高清视频在线播放| 欧美性猛交xxxx乱大交3| 91中文字幕在线观看| 2021久久精品国产99国产精品| 精品国产老师黑色丝袜高跟鞋| 午夜精品国产精品大乳美女| 欧美激情一级欧美精品| 亚洲男人7777| 亚洲人成电影网站色| 国产精品一区=区| 日本精品一区二区三区在线播放视频| 亚洲免费av网址| 精品日韩视频在线观看| 日韩av网站大全| 国产精品看片资源| 国产视频精品自拍| 亚洲一区二区三区乱码aⅴ| 国产日韩精品电影| 91国产高清在线| 欧美在线免费观看| 国产精品电影在线观看| 亚洲欧美国产制服动漫| 久久在线免费视频| 欧美大片免费观看| 久久久国产精品亚洲一区| 国a精品视频大全| 在线日韩第一页| 欧美激情成人在线视频| 俺也去精品视频在线观看| 亚洲毛片在线观看| 91综合免费在线| 久久久久久免费精品| 亚洲毛片在线免费观看| 中文字幕在线国产精品| 国产啪精品视频网站| 欧美精品一本久久男人的天堂| 欧美激情在线狂野欧美精品| 久久久久久久久久久久久久久久久久av| 亚洲精品成a人在线观看| 久久成人精品视频| 91精品久久久久久综合乱菊| 在线观看国产精品91| 亚洲欧美日韩国产中文专区| 国产福利精品视频| 91人成网站www| 欧美日韩一区免费| 这里只有精品视频在线| 青青草99啪国产免费| 日韩成人在线网站| 欧美激情极品视频| 成人精品一区二区三区电影免费| 日韩欧美一区二区三区| 国产欧美久久一区二区| 亚洲成人av资源网| 欧美精品videossex性护士| 欧美另类69精品久久久久9999| 亚洲美女喷白浆| 91精品国产综合久久男男| 丝袜美腿精品国产二区| 国产成人拍精品视频午夜网站| 国产精品美女www| 亚洲精品短视频| 一区二区三区四区在线观看视频| 视频在线观看99| 久久精品国产欧美激情| 狠狠躁夜夜躁人人躁婷婷91| 亚洲精品国偷自产在线99热| 91av在线播放| 欧美性猛交xxxx偷拍洗澡| 国产一区二区三区在线观看视频| 午夜精品一区二区三区av| 中文亚洲视频在线| 日韩精品免费在线播放| 欧美成人精品一区| 成人做爰www免费看视频网站| www.亚洲免费视频| 欧美肥臀大乳一区二区免费视频| 亚洲经典中文字幕| 亚洲激情在线观看| 久久久久久久久网站| 国产成人免费av电影| 亚洲人成电影在线观看天堂色| 日韩在线观看你懂的| 8x拔播拔播x8国产精品| 久久久欧美一区二区| 国产在线观看一区二区三区| 日韩欧美一区二区在线| 久久综合伊人77777蜜臀| 欧美大片免费观看在线观看网站推荐| 国产精品成人v| 日韩在线视频国产| 亚洲国产天堂久久国产91| 久久久久国产精品一区| 黑人巨大精品欧美一区免费视频| 91成人精品网站| 日韩免费在线看| 91精品国产综合久久久久久蜜臀| 国产精品久久久久久久9999| 欧美精品激情在线观看| 91在线视频九色| 久久99国产综合精品女同| 97色在线观看| 久久精品电影一区二区| 欧美成人亚洲成人日韩成人|