最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)文件讀寫(xiě)

 更新時(shí)間:2020年12月28日 10:24:55   作者:*pan  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)文件讀寫(xiě),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

關(guān)于C語(yǔ)言的文件讀寫(xiě),我將介紹下面這幾種方式:

  • 字符的讀寫(xiě):使用 fgetc() 函數(shù) 和 fputc() 函數(shù);
  • 字符串的讀寫(xiě):使用 fgets() 函數(shù)和 fputs() 函數(shù);
  • 格式化的讀寫(xiě)(主要用于文本文件):使用 fscanf() 函數(shù)和 fprintf() 函數(shù)。

字符讀寫(xiě):

1. fputc()函數(shù)

fputc(c,fp); //用于將一個(gè)字符寫(xiě)入文件

其中,fp為文件指針變量;c為要寫(xiě)入的字符,可以是字符常量或字符型變量。函數(shù)返回值:如果執(zhí)行成功,返回寫(xiě)入的字符;否則,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char ch;  //字符指針
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","w"); //打開(kāi)文件,寫(xiě)入模式
 if(fp==NULL) //若fopen()函數(shù)返回NULL則打開(kāi)文件失敗
 {
 printf("文件打開(kāi)失敗\n");
 }
 else
 {
 printf("請(qǐng)輸入內(nèi)容(以回車結(jié)束):\n"); 
 while((ch = getchar()) != '\n') //讀取字符進(jìn)行寫(xiě)入,讀取到“\n”結(jié)束
 {
 fputc(ch,fp);
 }
 }
 fclose(fp); //關(guān)閉文件
 return 0;
}

由于沒(méi)有寫(xiě)循環(huán),目前只能輸入一行文本內(nèi)容。

2. fgetc()函數(shù)

c=fgetc(fp); //用來(lái)從指定的文本文件中讀取一個(gè)字符。

其中,fp為文件指針,c為要寫(xiě)入的字符。該函數(shù)的功能是從指定的文件中讀取一個(gè)字符,并賦值給字符型變量c。

函數(shù)返回值:讀取成功,返回讀取字符;讀取錯(cuò)誤或遇到結(jié)束標(biāo)志EOF,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char ch;  //字符指針
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","r"); //打開(kāi)文件,只讀模式
 if(fp==NULL) //若fopen()函數(shù)返回NULL則打開(kāi)文件失敗
 {
 printf("文件打開(kāi)失敗\n");
 }
 else
 {
 while((ch=fgetc(fp))!=EOF) //讀取文件字符,直到返回fgetc()函數(shù)返回EOF
 {
 putchar(ch);  //在顯示窗口輸出字符
 }
 putchar('\n');  //輸出回車
 }
 fclose(fp);
 return 0;
}

字符串讀寫(xiě):

1. fputs()函數(shù)

fputs(s,fp); //用來(lái)將一個(gè)字符串寫(xiě)入指定的文本文件。 

其中,fp為文件指針,s可以是字符數(shù)組名,字符型指針變量或字符串常量。該函數(shù)的功能是將字符串s寫(xiě)入由fp指向的文件中,字符串末尾的‘\0'字符不允寫(xiě)入。

函數(shù)返回值:執(zhí)行成功,返回所寫(xiě)的最后一個(gè)字符;否則,返回EOF。

int main()
{
 FILE *fp;  //定義文件指針
 char s[][100]={"a 一","b 地","c 現(xiàn)","cd 三","about 關(guān)于"};  //將字符串存入數(shù)組
 int i;
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","w"); //打開(kāi)文件,寫(xiě)入模式
 if(fp==NULL) //若fopen()函數(shù)返回NULL則打開(kāi)文件失敗
 {
 printf("文件打開(kāi)失敗\n");
 }
 else
 {
 for(i=0;i<5;i++)  //注意數(shù)組從0開(kāi)始
 {
  fputs(s[i],fp); //在文件中寫(xiě)入數(shù)組中的字符串
  fputs("\n",fp); //在文件中寫(xiě)入回車
 }
 }
 fclose(fp); //關(guān)閉文件
 return 0;
}

運(yùn)行結(jié)果:

2. fgets()函數(shù)

fgets(s,n,fp); //用于從指定的文件中讀一個(gè)字符串到字符數(shù)組中。

其中,s可以是字符型數(shù)組名或字符串指針;n是指定讀入的字符個(gè)數(shù);fp為文件指針。n是一個(gè)正整數(shù),表示從文件中最多讀取n-1個(gè)字符,并將字符串指針s定位在讀入的字符串首地址。

fgets()函數(shù)從文件中讀取字符直到遇到回車符或EOF為止,函數(shù)會(huì)在最后一個(gè)字符后加上字符串結(jié)束標(biāo)志'\0';若有EOF,則不予保留。

函數(shù)返回值:該函數(shù)如果執(zhí)行成功,返回讀取字符串;如果失敗,則返回空指針NULL,這時(shí),s中的內(nèi)容不確定。

int main()
{
 FILE *fp;  //定義文件指針
 char s[5][100]; 
 int i;
 fp=fopen("C://Users//Administrator//Desktop//tcc//trans//in.txt","r"); //打開(kāi)文件,只讀模式
 if(fp==NULL) //若fopen()函數(shù)返回NULL則打開(kāi)文件失敗
 {
 printf("文件打開(kāi)失敗\n");
 }
 else
 {
 for(i=0;i<5;i++)
 {
 fgets(s[i],100,fp); //讀取字符串存入數(shù)組
 printf("%s",s[i]); //輸出字符串
 }
 }
 fclose(fp);
 return 0;
}

運(yùn)行結(jié)果:

格式化讀寫(xiě):

1. fprintf()函數(shù)

fprintf(fp,format, arg1, arg2,….,argn);

fprintf()用來(lái)將輸出項(xiàng)按指定的格式寫(xiě)入指定的文本文件中,其中格式化規(guī)定與printf()函數(shù)功能相似,所不同的只是fprintf()函數(shù)是將輸出的內(nèi)容寫(xiě)入文件中,而printf()函數(shù)則是在屏幕輸出。

其中,fp為文件指針,format為指定的格式控制字符串;arg1~argn為輸出項(xiàng),可以是字符、 字符串或各種類型的數(shù)值。該函數(shù)的功能是按格式控制字符串format給定的格式,將輸出項(xiàng)arg1,arg2,……,argn的值寫(xiě)入fp所指向的文件中。

函數(shù)返回值:如果函數(shù)執(zhí)行成功,返回實(shí)際寫(xiě)入文件的字符個(gè)數(shù);若出現(xiàn)錯(cuò)誤,返回負(fù)數(shù)。

具體格式:

fprintf(fp,"%s",s[i]); //在文件中寫(xiě)入數(shù)組中的字符串

2. fscanf()函數(shù)

fscanf(fp,format,arg1,arg2,…..,argn);

fscanf()用來(lái)按規(guī)定的格式從指定的文本文件中讀取數(shù)據(jù)。它與scanf()函數(shù)的功能相似,都是按規(guī)定的格式讀數(shù)據(jù)的函數(shù),只是fscanf()函數(shù)讀的對(duì)象不是鍵盤區(qū),而是文件。

其中,fp為文件指針,format為指定的格式控制字符串;arg1~argn為輸入項(xiàng)的地址。該函數(shù)的功能是從文件指針fp所指的文本文件中讀取數(shù)據(jù),按格式控制字符串format給定的格式賦予輸入項(xiàng)arg1,arg2,……,argn中。

函數(shù)返回值:如果該函數(shù)執(zhí)行成功,返回讀取項(xiàng)目個(gè)數(shù);如果遇到文件末尾,返回EOF;如果賦值失敗,返回0.

具體格式:

fscanf(fp,"%s",s[i]); //讀取字符串存入數(shù)組

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程

    史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程

    這篇文章主要介紹了史上最貼心的 VS code C++ 環(huán)境配置超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • C++基于socket編程實(shí)現(xiàn)聊天室功能

    C++基于socket編程實(shí)現(xiàn)聊天室功能

    這篇文章主要介紹了C++基于socket編程實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 淺談C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧

    淺談C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧

    這篇文章主要介紹了C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧,文中涉及到了基礎(chǔ)的C程序內(nèi)存方面的知識(shí),非常推薦!需要的朋友可以參考下
    2016-02-02
  • C++通過(guò)類實(shí)現(xiàn)線性表

    C++通過(guò)類實(shí)現(xiàn)線性表

    這篇文章主要為大家詳細(xì)介紹了C++通過(guò)類實(shí)現(xiàn)線性表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C++堆和棧的區(qū)別與聯(lián)系講解

    C++堆和棧的區(qū)別與聯(lián)系講解

    今天小編就為大家分享一篇關(guān)于C++堆和棧的區(qū)別與聯(lián)系講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • 淺析stl序列容器(map和set)的仿函數(shù)排序

    淺析stl序列容器(map和set)的仿函數(shù)排序

    有序的stl容器在工程中應(yīng)用什么方便和廣泛,但是當(dāng)我們需要自己的排序的時(shí)候,可以用仿函數(shù)來(lái)設(shè)置它
    2013-09-09
  • C語(yǔ)言函數(shù)語(yǔ)法詳解

    C語(yǔ)言函數(shù)語(yǔ)法詳解

    本文是小結(jié)了一下C語(yǔ)言的函數(shù)語(yǔ)法,詳細(xì)介紹了C語(yǔ)言函數(shù)語(yǔ)法的概述、函數(shù)的定義、函數(shù)的返回值、函數(shù)調(diào)用等7個(gè)方面的內(nèi)容,非常詳細(xì),這里推薦給小伙伴們。
    2015-02-02
  • C++實(shí)現(xiàn)圖的鄰接表存儲(chǔ)和廣度優(yōu)先遍歷實(shí)例分析

    C++實(shí)現(xiàn)圖的鄰接表存儲(chǔ)和廣度優(yōu)先遍歷實(shí)例分析

    這篇文章主要介紹了C++實(shí)現(xiàn)圖的鄰接表存儲(chǔ)和廣度優(yōu)先遍歷,實(shí)例分析了C++實(shí)現(xiàn)圖的存儲(chǔ)與遍歷技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C++中函數(shù)模板與類模板的簡(jiǎn)單使用及區(qū)別介紹

    C++中函數(shù)模板與類模板的簡(jiǎn)單使用及區(qū)別介紹

    這篇文章介紹了C++中的模板機(jī)制,包括函數(shù)模板和類模板的概念、語(yǔ)法和實(shí)際應(yīng)用,函數(shù)模板通過(guò)類型參數(shù)實(shí)現(xiàn)泛型操作,而類模板允許創(chuàng)建可處理多種數(shù)據(jù)類型的類,文章還討論了模板的關(guān)鍵區(qū)別、注意事項(xiàng)以及它們?cè)趯?shí)際編程中的應(yīng)用,感興趣的朋友一起看看吧
    2025-03-03
  • C++實(shí)現(xiàn)線性表鏈?zhǔn)酱鎯?chǔ)(單鏈)

    C++實(shí)現(xiàn)線性表鏈?zhǔn)酱鎯?chǔ)(單鏈)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)線性表鏈?zhǔn)酱鎯?chǔ),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論

汉阴县| 砀山县| 岳池县| 翁源县| 贞丰县| 新闻| 驻马店市| 苍梧县| 岳普湖县| 肃南| 慈溪市| 堆龙德庆县| 伽师县| 奈曼旗| 新竹县| 苏尼特右旗| 白城市| 包头市| 湟中县| 建宁县| 兴义市| 新竹市| 三河市| 嘉义县| 屏南县| 彭州市| 鄂州市| 仙居县| 镇巴县| 陆丰市| 新乐市| 巴林右旗| 太康县| 方山县| 尼木县| 东源县| 罗平县| 兴城市| 朝阳县| 沭阳县| 抚顺市|