文件I/O編程之: 標(biāo)準(zhǔn)I/O編程
6.5.2其他操作
文件打開(kāi)之后,根據(jù)一次讀寫(xiě)文件中字符的數(shù)目可分為字符輸入輸出、行輸入輸出和格式化輸入輸出,下面分別對(duì)這3種不同的方式進(jìn)行講解。
1.字符輸入輸出
字符輸入輸出函數(shù)一次僅讀寫(xiě)一個(gè)字符。其中字符輸入輸出函數(shù)如表6.21和表6.22所示。
表6.21 字符輸出函數(shù)語(yǔ)法要點(diǎn)
所需頭文件 | #includestdio.h> |
函數(shù)原型 | intgetc(FILE*stream) |
函數(shù)傳入值 | stream:要輸入的文件流 |
函數(shù)返回值 | 成功:下一個(gè)字符 |
表6.22 字符輸入函數(shù)語(yǔ)法要點(diǎn)
所需頭文件 | #includestdio.h> |
函數(shù)原型 | intputc(intc,FILE*stream) |
函數(shù)返回值 | 成功:字符c |
這幾個(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) |
函數(shù)傳入值 | s:要輸入的字符串 |
函數(shù)返回值 | 成功:s |
表6.24 行輸入函數(shù)語(yǔ)法要點(diǎn)
所需頭文件 | #includestdio.h> |
函數(shù)原型 | intputs(constchar*s) |
函數(shù)傳入值 | s:要輸出的字符串 |
函數(shù)返回值 | 成功:s |
這里以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)論