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

首頁 > 編程 > C > 正文

C語言文件操作總結

2020-01-26 13:45:20
字體:
來源:轉載
供稿:網友

關于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!"); //文件無法打開  }

關于文件打開的模式,我在上一篇文件操作的博客中詳細介紹了,鏈接://www.49028c.com/article/135835.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個字節后是否到達文件末尾。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品99久久久久久久久| 欧美影院在线播放| 国外色69视频在线观看| 色悠久久久久综合先锋影音下载| 国产美女扒开尿口久久久| 2019中文在线观看| 日韩中文字幕在线| 国产精品无码专区在线观看| 成人性教育视频在线观看| 欧美激情一区二区三区在线视频观看| 欧美一级电影久久| 国产亚洲精品久久久优势| 91免费福利视频| 成人写真福利网| 精品成人久久av| 亚洲精品免费av| 国产精品一区二区三区毛片淫片| 8050国产精品久久久久久| 色婷婷亚洲mv天堂mv在影片| 久久免费观看视频| 欧美性理论片在线观看片免费| 欧美色播在线播放| 欧美日韩免费观看中文| 久久久久久高潮国产精品视| 欧美日韩国产一区二区三区| 欧美午夜片在线免费观看| 欧美成人网在线| 欧美精品在线极品| 国产福利视频一区| 欧美亚州一区二区三区| 视频在线一区二区| 欧美午夜精品久久久久久浪潮| 久久久黄色av| 中文字幕九色91在线| 亚洲 日韩 国产第一| 国产成人精品久久| 77777少妇光屁股久久一区| 懂色av中文一区二区三区天美| 欧美成人免费全部| 久久精品国产精品| 国产精品jvid在线观看蜜臀| 国产视频亚洲视频| 91色精品视频在线| 国产精品久久久久久五月尺| 97香蕉超级碰碰久久免费的优势| 日韩欧美一区二区在线| 中文字幕亚洲情99在线| 欧美肥老太性生活视频| 日韩美女视频免费看| 国产精品吴梦梦| 国产精品一区二区久久国产| 成人有码在线播放| 国内精品视频在线| 在线播放国产一区中文字幕剧情欧美| 性欧美暴力猛交69hd| 亚洲欧美色婷婷| 成人美女av在线直播| 91色视频在线导航| 亲爱的老师9免费观看全集电视剧| 9.1国产丝袜在线观看| 少妇久久久久久| 国产精国产精品| 国产偷国产偷亚洲清高网站| 欧美精品福利视频| 久久天天躁日日躁| 日韩亚洲欧美中文高清在线| 麻豆一区二区在线观看| 91精品国产91久久久久久久久| 久久成人国产精品| 成人在线免费观看视视频| 欧美日韩在线视频首页| 欧美日韩不卡合集视频| 国产美女高潮久久白浆| 日韩在线播放视频| 亚洲视频在线免费看| 日韩欧美在线国产| 成人在线观看视频网站| 96pao国产成视频永久免费| 久久精品一偷一偷国产| 亚洲精品aⅴ中文字幕乱码| 日韩av网站电影| 欧美激情视频一区二区| 日韩精品极品视频免费观看| 中文字幕亚洲一区二区三区| 欧美日韩综合视频网址| 亚洲电影在线观看| 91久久精品美女| 欧洲永久精品大片ww免费漫画| 欧美日韩aaaa| 欧美激情亚洲另类| 青青草99啪国产免费| 国产91露脸中文字幕在线| www.99久久热国产日韩欧美.com| 欧美第一淫aaasss性| 在线不卡国产精品| 亚洲国产精品美女| 欧美一区二区三区图| 国产精品日韩在线一区| 欧美夫妻性生活视频| 美日韩精品视频免费看| 国产精品久久久久久av| 亚洲天堂网站在线观看视频| 91高清视频在线免费观看| 色一区av在线| 菠萝蜜影院一区二区免费| 精品福利在线看| 中文在线资源观看视频网站免费不卡| 亚洲成人久久一区| 中国日韩欧美久久久久久久久| 日本久久久久久久久| 日本精品视频在线观看| 日韩在线视频中文字幕| 亚洲综合中文字幕在线观看| 日韩黄色高清视频| 51久久精品夜色国产麻豆| 色偷偷888欧美精品久久久| 成人福利免费观看| 欧美最顶级的aⅴ艳星| 国产精品69久久| 国产成人精品a视频一区www| 国产伦精品一区二区三区精品视频| 亚洲天堂免费在线| 2018日韩中文字幕| 成人精品一区二区三区电影免费| 亚洲免费小视频| 亚洲三级黄色在线观看| 欧美一级电影久久| 久久久精品国产亚洲| 国产视频精品一区二区三区| 亚洲香蕉成视频在线观看| 一区二区三区无码高清视频| 日本亚洲精品在线观看| 66m—66摸成人免费视频| 国产精品第一页在线| 国产日韩精品入口| 欧美三级免费观看| 亚洲精品美女在线观看| 亚洲精品资源在线| 久久亚洲综合国产精品99麻豆精品福利| 亚洲精品一区二区久| 亚洲春色另类小说| 欧美性猛交xxxx乱大交3| 综合av色偷偷网| 91探花福利精品国产自产在线| 免费91麻豆精品国产自产在线观看| 欧美激情第99页| 亚洲激情小视频| 欧美大片欧美激情性色a∨久久| 欧美日韩一区二区在线| 国产男女猛烈无遮挡91| 57pao成人国产永久免费| 成人写真福利网| 神马久久久久久| 久久久久日韩精品久久久男男| 国产成人综合一区二区三区| 91精品国产高清久久久久久91| 91久久在线观看| 456国产精品| 日本成人在线视频网址| 性色av一区二区咪爱| 成人字幕网zmw| 国产精品久久久久久久久久ktv| 亚洲色图狂野欧美| 午夜精品一区二区三区在线|