新聞中心

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

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

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

本文引用地址:http://butianyuan.cn/article/257135.htm

6.5.2其他操作

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

1.字符輸入輸出

字符輸入輸出一次僅讀寫一個字符。其中字符輸入輸出如表6.21和表6.22所示。

表6.21 字符輸出語法要點

所需頭文件

#includestdio.h>

函數(shù)原型

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

函數(shù)傳入值

stream:要輸入的文件流

函數(shù)返回值

成功:下一個字符
失?。篍OF

表6.22 字符輸入函數(shù)語法要點

所需頭文件

#includestdio.h>

函數(shù)原型

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

函數(shù)返回值

成功:字符c
失?。篍OF

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

下面這個實例結(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);

}

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

$./fput

w(用戶輸入)

w(屏幕輸出)

2.行輸入輸出

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

表6.23 行輸出函數(shù)語法要點

所需頭文件

#includestdio.h>

函數(shù)原型

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

函數(shù)傳入值

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

函數(shù)返回值

成功:s
失敗:NULL

表6.24 行輸入函數(shù)語法要點

所需頭文件

#includestdio.h>

函數(shù)原型

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

函數(shù)傳入值

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

函數(shù)返回值

成功:s
失?。篘ULL

這里以gets()和puts()為例進行說明,本實例將標(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);

}

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

$./gets

Thisisstdin(用戶輸入)

Thisisstdin(屏幕輸出)

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

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




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉