<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 文件I/O編程之: 標(biāo)準(zhǔn)I/O編程

          文件I/O編程之: 標(biāo)準(zhǔn)I/O編程

          作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257135.htm

          6.5.2其他操作

          文件打開(kāi)之后,根據(jù)一次讀寫(xiě)文件中字符的數(shù)目可分為字符輸入輸出、行輸入輸出和格式化輸入輸出,下面分別對(duì)這3種不同的方式進(jìn)行講解。

          1.字符輸入輸出

          字符輸入輸出一次僅讀寫(xiě)一個(gè)字符。其中字符輸入輸出如表6.21和表6.22所示。

          表6.21 字符輸出語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          intgetc(FILE*stream)
          intfgetc(FILE*stream)
          intgetchar(void)

          函數(shù)傳入值

          stream:要輸入的文件流

          函數(shù)返回值

          成功:下一個(gè)字符
          失?。篍OF

          表6.22 字符輸入函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          intputc(intc,FILE*stream)
          intfputc(intc,FILE*stream)
          intputchar(intc)

          函數(shù)返回值

          成功:字符c
          失敗:EOF

          這幾個(gè)函數(shù)功能類(lèi)似,其區(qū)別僅在于getc()和putc()通常被實(shí)現(xiàn)為宏,而fgetc()和fputc()不能實(shí)現(xiàn)為宏,因此,函數(shù)的實(shí)現(xiàn)時(shí)間會(huì)有所差別。

          下面這個(gè)實(shí)例結(jié)合fputc()和fgetc()將標(biāo)準(zhǔn)輸入復(fù)制到標(biāo)準(zhǔn)輸出中去。

          /*fput.c*/

          #includestdio.h>

          main()

          {

          intc;

          /*把fgetc()的結(jié)果作為fputc()的輸入*/

          fputc(fgetc(stdin),stdout);

          }

          運(yùn)行結(jié)果如下所示:

          $./fput

          w(用戶(hù)輸入)

          w(屏幕輸出)

          2.行輸入輸出

          行輸入輸出函數(shù)一次操作一行。其中行輸入輸出函數(shù)如表6.23和表6.24所示。

          表6.23 行輸出函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          char*gets(char*s)
          charfgets(char*s,intsize,FILE*stream)

          函數(shù)傳入值

          s:要輸入的字符串
          size:輸入的字符串長(zhǎng)度
          stream:對(duì)應(yīng)的文件流

          函數(shù)返回值

          成功:s
          失敗:NULL

          表6.24 行輸入函數(shù)語(yǔ)法要點(diǎn)

          所需頭文件

          #includestdio.h>

          函數(shù)原型

          intputs(constchar*s)
          intfputs(constchar*s,FILE*stream)

          函數(shù)傳入值

          s:要輸出的字符串
          stream:對(duì)應(yīng)的文件流

          函數(shù)返回值

          成功:s
          失?。篘ULL

          這里以gets()和puts()為例進(jìn)行說(shuō)明,本實(shí)例將標(biāo)準(zhǔn)輸入復(fù)制到標(biāo)準(zhǔn)輸出,如下所示:

          /*gets.c*/

          #includestdio.h>

          main()

          {

          chars[80];

          /*同上例,把fgets()的結(jié)果作為fputs()的輸入*/

          fputs(fgets(s,80,stdin),stdout);

          }

          運(yùn)行該程序,結(jié)果如下所示:

          $./gets

          Thisisstdin(用戶(hù)輸入)

          Thisisstdin(屏幕輸出)

          linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程




          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();