亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 7.學c51的基礎7《 文件的輸入輸出函數 》.txt

?? 學習51單片機必備的一些C語言基礎知識
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
===============================================
詳細內容七:學C51的基礎---- 文件的輸入輸出函數
===============================================

    1.2  文件的輸入輸出函數

    鍵盤、顯示器、打印機、磁盤驅動器等邏輯設備, 其輸入輸出都可以通過文件管理的方法來完成。而在編程時使用最多的要算
是磁盤文件, 因此本節主要以磁盤文件為主, 詳細介紹Turbo C2.0提供的文件操作函數, 當然這些對文件的操作函數也適合于非磁
盤文件的情況。
    另外, Turbo C2.0提供了兩類關于文件的函數。一類稱做標準文件函數也稱緩沖型文件函數, 這是ANSI標準定義的函數; 另一
類叫非標準文件函數, 也稱非緩沖型文件函數。這類函數最早公用于UNIX操作系統, 但現在MS-DOS3.0 以上版本的操作系統也可以
使用。下面分別進行介紹。

    1.2.1  標準文件函數
    標準文件函數主要包括文件的打開、關閉、讀和寫等函數。不象BASIC 、FORTRAN語方有順序文件和隨機文件之分, 在打開時
就應按不同的方式確定。Turbo C2.0并不區分這兩種文件, 但提供了兩組函數, 即順序讀寫函數和隨機讀寫函數。

    一、文件的打開和關閉
    任何一個文件在使用之前和使用之后, 必須要進行打開和關閉, 這是因為操作系統對于同時打開的文件數目是有限制的, DOS
操作系統中, 可以在DEVICE.SYS中定義允許同時打開的文件數n(用files=n定義)。其中n 為可同時打開的文件數, 一般n<=20。因
此在使用文件前應打開文件, 才可對其中的信息進行存取。 用完之后需要關閉, 否則將會出現一些意想不到的錯誤。Turbo C2.0
提供了打開和關閉文件的函數。

    1. fopen()函數
    fopen函數用于打開文件, 其調用格式為:

     FILE *fopen(char *filename, *type);

    在介紹這個函數之前, 先了解一下下面的知識。

    (1) 流(stream)和文件(file)
    流和文件在Turbo C2.0中是有區別的, Turbo C2.0 為編程者和被訪問的設備之間提供了一層抽象的東西, 稱之為"流", 而將
具體的實際設備叫做文件。流是一個邏輯設備, 具有相同的行為。因此,用來進行磁盤文件寫的函數也同樣可以用來進行打印機的
寫入。在Turbo C2.0中有兩種性質的流: 文字流(text stream)和二進制(binary stream)。 對磁盤來說就是文本文件和二進制文
件。本軟件為了便于讓讀者易理解Turbo C2.0語言而沒有對流和文件作特別區分。

    (2) 文件指針FILE
    實際上FILE是一個新的數據類型。它是Turbo C2.0的基本數據類型的集合, 稱之為結構指針。有關結構的概念將在第四節中詳
細介紹, 這里只要將FILE理解為一個包括了文件管理有關信息的數據結構, 即在打開文件時必須先定義一個文件指針。

    (3) 以后介紹的函數調用格式將直接寫出形式參數的數據類型和函數返回值的數據類型。例如: 上面打開文件的函數, 返回一
個文件指針, 其中形式參數有兩個, 均為字符型變量(字符串數組或字符串指針)。本軟件不再對函數的調用格式作詳細說明。

    現在再來看打開文件函數的用法。
    fopen()函數中第一個形式參數表示文件名, 可以包含路徑和文件名兩部分。
如:
     "B:TEST.DAT"
     "C:\\TC\\TEST.DAT"
    如果將路徑寫成"C:\TC\TEST.DAT"是不正確的, 這一點要特別注意。
    第二個形式參數表示打開文件的類型。關于文件類型的規定參見下表。
                       表  文件操作類型
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
          字符                含義
    ────────────────────────────
           "r"           打開文字文件只讀
           "w"           創建文字文件只寫
           "a"           增補, 如果文件不存在則創建一個
           "r+"          打開一個文字文件讀/寫
           "w+"          創建一個文字文件讀/寫
           "a+"          打開或創建一個文件增補
           "b"           二進制文件(可以和上面每一項合用)
           "t"           文這文件(默認項)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    如果要打開一個CCDOS子目錄中, 文件名為CLIB的二進制文件, 可寫成:

     fopen("c:\\ccdos\\clib", "rb");

    如果成功的打開一個文件, fopen()函數返回文件指針, 否則返回空指針(NULL)。由此可判斷文件打開是否成功。

    2. fclose()函數
    fclose()函數用來關閉一個由fopen()函數打開的文件 , 其調用格式為:

      int fclose(FILE *stream);

    該函數返回一個整型數。當文件關閉成功時, 返回0, 否則返回一個非零值??梢愿鶕瘮档姆祷刂蹬袛辔募欠耜P閉成功。

    例10:

     #iclude<stdio.h>
     main()
     {
          FILE *fp;                    /*定義一個文件指針*/
          int i;
          fp=fopen("CLIB", "rb");      /*打開當前目錄名為CLIB的文件只讀*/
          if(fp==NULL)                 /*判斷文件是否打開成功*/
             puts("File open error");  /*提示打開不成功*/
          i=fclose(fp);                /*關閉打開的文件*/
          if(i==0)                     /*判斷文件是否關閉成功*/
            printf("O,K");             /*提示關閉成功*/
          else
            puts("File close error");  /*提示關閉不成功*/
     }

    二、有關文件操作的函數
    本節所講的文件讀寫函數均是指順序讀寫, 即讀寫了一條信息后, 指針自動加1。下面分別介紹寫操作函數和讀操作函數。

    1. 文件的順序寫函數
    fprintf()、fputs()和fputc()函數

    函數fprintf()、fputs()和fputc()均為文件的順序寫操作函數, 其調用格式如下:

    int fprintf(FILE *stream, char *format, <variable-list>);
    int fputs(char *string, FILE *steam);
    int fputc(int ch, FILE *steam);

    上述三個函數的返回值均為整型量。fprintf() 函數的返回值為實際寫入文件中的字罕個數(字節數)。如果寫錯誤, 則返回一
個負數, fputs()函數返回0時表明將string指針所指的字符串寫入文件中的操作成功, 返回非0時, 表明寫操作失敗。fputc()函數
返回一個向文件所寫字符的值, 此時寫操作成功, 否則返回EOF(文件結束結束其值為-1, 在stdio.h中定義)表示寫操作錯誤。
     fprintf( ) 函數中格式化的規定與printf( ) 函數相同, 所不同的只是fprintf()函數是向文件中寫入。而printf()是向屏
幕輸出。
    下面介紹一個例子, 運行后產后一個test.dat的文件。

    例11:

     #include<stdio.h>
     main()
     {
          char *s=("That's good news"); /*定義字符串指針并初始化*/
          int i=617;                    /*定義整型變量并初始化*/
          FILE *fp;                     /*定義文件指針*/
          fp=fopne("test.dat", "w");    /*建立一個文字文件只寫*/
          fputs("Your score of TOEFLis", fp);/*向所建文件寫入一串字符*/
          fputc('':'', fp);               /*向所建文件寫冒號:*/
          fprintf(fp, "%d\n", i);       /*向所建文件寫一整型數*/
          fprintf(fp, "%s", s);         /*向所建文件寫一字符串*/
          fclose(fp);                   /*關閉文件*/
     }

    用DOS的TYPE命令顯示TEST.DAT的內容如下所示:
    屏幕顯示

      Your score of TOEFL is: 617
      That's good news

    2. 文件的順序讀操作函數
    fscanf()、fgets()和fgetc()函數

    函數fscanf()、fgets()和fgetc()均為文件的順序讀操作函數, 其調用格式如下:

     int fscanf(FILE *stream, char *format, );
     char fgets(char *string, int n, FILE *steam);
     int fgetc(FILE *steam);

    fscanf()函數的用法與scanf()函數相似, 只是它是從文件中讀到信息。fscanf()函數的返回值為EOF(即-1), 表明讀錯誤, 否
則讀數據成功。fgets()函數從文件中讀取至多n-1個字符(n用來指定字符數), 并把它們放入string指向的字符串中, 在讀入之后
自動向字符串未尾加一個空字符, 讀成功返回string指針, 失敗返回一個空指針。fgetc()函數返回文件當前位置的一個字符, 讀
錯誤時返回EOF。
    下面程序讀取例11產生的test.dat文件, 并將讀出的結果顯示在屏幕上。

    例12

     #include<stdio.h>
     main()
     {
          char *s, m[20];
          int i;
          FILE  *fp;
          fp=fopen("test.dat", "r");    /*打開文字文件只讀*/
          fgets(s, 24, fp);             /*從文件中讀取23個字符*/
          printf("%s", s);              /*輸出所讀的字符串*/
          fscanf(fp, "%d", &i);         /*讀取整型數*/
          printf("%d", i);              /*輸出所讀整型數*/
          putchar(fgetc(fp));           /*讀取一個字符同時輸出*/
          fgets(m, 17, fp);             /*讀取16個字符*/
          puts(m);                      /*輸出所讀字符串*/
          fclose(fp);                   /*關閉文件*/
          getch();                      /*等待任一鍵*/
     }

    運行后屏幕顯示:

    Your score of TOEFL is: 617
    That's good news

    如果將上例中fscanf(fp, "%d", &i)改為fscanf(fp, "%s", m), 再將其后的輸出語句改為printf("%s", m), 則可得出同樣的
結果。由此可見Turbo C2. 0 中只要是讀文字文件, 則不論是字符還是數字都將按其ASCII值處理。 另外還要說明的一點就是
fscanf()函數讀到空白符時, 便自動結束,在使用時要特別注意。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区| 国产一区二三区好的| 国产色婷婷亚洲99精品小说| 日韩午夜精品视频| 欧美人妇做爰xxxⅹ性高电影| 91久久精品日日躁夜夜躁欧美| av午夜一区麻豆| av午夜一区麻豆| 色综合夜色一区| 欧美日韩中文字幕精品| 欧美视频一二三区| 欧美一区中文字幕| 国产精品久久久久久亚洲毛片| 久久综合久久99| 国产欧美综合在线观看第十页| 国产精品麻豆网站| 亚洲靠逼com| 日韩精品欧美成人高清一区二区| 日本亚洲欧美天堂免费| 国产尤物一区二区在线| 国产伦精品一区二区三区视频青涩| 国产九九视频一区二区三区| 成人av综合一区| 欧美制服丝袜第一页| 欧美日韩成人在线一区| 精品嫩草影院久久| 国产精品色噜噜| 亚洲电影视频在线| 国内精品伊人久久久久av一坑| 国产99精品在线观看| 色综合久久综合中文综合网| 91精品国产美女浴室洗澡无遮挡| 欧美成人高清电影在线| 亚洲欧洲韩国日本视频| 性做久久久久久久久| 国内精品伊人久久久久av一坑| 成人免费视频视频在线观看免费| 欧美日韩国产高清一区二区三区| 欧美成人国产一区二区| 怡红院av一区二区三区| 美女爽到高潮91| 色综合久久综合| 欧美电影免费提供在线观看| 亚洲欧美日韩国产手机在线 | 不卡电影一区二区三区| 在线观看一区二区精品视频| 久久先锋资源网| 一区二区三区在线不卡| 国产精品一品二品| 在线电影一区二区三区| 成人免费一区二区三区视频 | 久久精品亚洲一区二区三区浴池 | 天堂成人国产精品一区| 国产91综合一区在线观看| 欧美婷婷六月丁香综合色| 精品毛片乱码1区2区3区 | 日本中文字幕一区二区视频| 91在线精品一区二区| 久久综合国产精品| 青青草一区二区三区| 91久久精品一区二区三| 欧美极品xxx| 国产一区二区三区精品视频| 日韩欧美国产一区在线观看| 一区二区三区高清| 94-欧美-setu| 中文字幕一区二区三区乱码在线| 国产精品一级二级三级| 欧美成人精品高清在线播放| 日韩精品电影一区亚洲| 欧美精品在线一区二区三区| 一区二区三区在线观看国产| 一本久道中文字幕精品亚洲嫩| 国产精品萝li| 成人av在线资源网站| 国产精品私人自拍| 岛国精品在线播放| 久久久久久久久岛国免费| 国产一区二三区好的| 久久久亚洲精华液精华液精华液| 精品综合久久久久久8888| 精品国产青草久久久久福利| 韩国av一区二区| 国产亚洲一区二区三区四区 | 在线成人小视频| 日韩高清不卡在线| 日韩欧美一级在线播放| 激情综合色综合久久综合| 久久久亚洲综合| 波多野结衣中文字幕一区| 亚洲日本中文字幕区| 色婷婷综合久久久久中文| 亚洲一区二区在线免费看| 欧美日韩一区二区电影| 美女网站一区二区| 久久精品一区二区| 91免费看片在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美三级电影一区| 麻豆91精品视频| 中文字幕五月欧美| 精品视频123区在线观看| 麻豆91在线观看| 国产精品久久免费看| 欧美熟乱第一页| 精东粉嫩av免费一区二区三区| 亚洲国产精品传媒在线观看| 在线精品视频一区二区| 精品一区二区三区在线播放 | 欧美日韩dvd在线观看| 蜜臀久久99精品久久久画质超高清| 久久久精品影视| 色域天天综合网| 老司机精品视频线观看86| 亚洲婷婷在线视频| 日韩午夜精品视频| 91在线一区二区三区| 蜜臀a∨国产成人精品| 国产精品久久久久久亚洲毛片| 欧美日韩另类国产亚洲欧美一级| 国产精品888| 99re66热这里只有精品3直播| 亚洲一区二区精品久久av| 久久女同精品一区二区| 欧美性大战xxxxx久久久| 国产精品88av| 蜜桃av噜噜一区二区三区小说| 综合网在线视频| 欧美精品一区视频| 欧美精品色综合| 在线视频观看一区| 成人免费毛片嘿嘿连载视频| 免费观看一级欧美片| 一区二区三区四区视频精品免费 | 亚洲靠逼com| 国产网站一区二区| 日韩女优制服丝袜电影| 欧美日韩一二区| 91亚洲精品久久久蜜桃| 国产麻豆成人精品| 狠狠色2019综合网| 秋霞国产午夜精品免费视频| 亚洲精品视频自拍| 中文字幕一区二区三区不卡在线| 精品福利在线导航| 日韩欧美区一区二| 3d动漫精品啪啪1区2区免费 | 日韩电影网1区2区| 亚洲午夜在线视频| 洋洋av久久久久久久一区| 日韩一区在线看| 中文字幕视频一区| 国产精品久久三区| 中文字幕精品一区二区精品绿巨人| www欧美成人18+| 久久久久久久网| 国产色91在线| 国产精品视频第一区| 国产精品国产三级国产普通话99 | 欧美性欧美巨大黑白大战| 99久久精品国产网站| 99在线精品一区二区三区| 99久久精品99国产精品| 色综合久久久久久久| 色老汉一区二区三区| 欧美日韩亚洲不卡| 欧美挠脚心视频网站| 日韩一区二区三区观看| 精品国产亚洲在线| 国产精品美女www爽爽爽| 中文字幕在线视频一区| 亚洲日本免费电影| 性做久久久久久| 九色|91porny| 成人h精品动漫一区二区三区| 93久久精品日日躁夜夜躁欧美| 色婷婷久久久综合中文字幕| 欧美日韩精品欧美日韩精品一| 欧美电视剧在线观看完整版| 国产日产欧美精品一区二区三区| 国产精品久久三区| 日韩中文字幕一区二区三区| 久久99国产乱子伦精品免费| 波多野结衣中文字幕一区| 欧美色综合网站| 337p日本欧洲亚洲大胆精品| 中文字幕在线观看不卡视频| 午夜不卡av在线| 国产成人精品三级麻豆| 欧美这里有精品| 久久久综合视频| 亚洲图片有声小说| 国产精品一区免费在线观看| 91官网在线观看| 国产午夜精品一区二区三区视频| 亚洲激情自拍视频| 国产成人激情av| 正在播放亚洲一区| 专区另类欧美日韩| 精品亚洲国内自在自线福利|