1.读取一个字符函数fgetc
函数fgetc的功能是从文件类型指针指向的文本文件的当前位置读取一个字符,将该字符的ASCII码值作为函数的返回值。如果读到文件结束符(^z)或读取不成功,则返回EOF(-1)。
函数fgetc的使用格式如下:
读取一个字符后,文件的当前位置将后移1字节,为读取下一个字符做准备。
例如:
表示从fp所指向的文件的当前位置读取一个字符,该字符赋给字符型变量c。
stdin是一个特殊的文件类型指针,它代表标准输入文件(如键盘),fgetc(stdin)的功能是从终端(如键盘)输入一个字符,函数值是该字符;函数getchar的功能也是从终端(如键盘)输入一个字符,函数值是该字符。所以getchar()与fgetc(stdin)的功能相同。
2.写入一个字符函数fputc
函数fputc的功能是向文件类型指针指向的文本文件的当前位置写入一个字符,“字符表达式”代表要写入的字符,字符表达式可以是字符常量或字符变量。如果写入成功,则函数的返回值是所写入字符的ASCII码值,否则返回EOF(-1)。
函数fputc的使用格式如下:
写入一个字符后,文件的当前位置将后移1字节,为写入下一个字符做准备。
例如:
表示将存储在变量c中的字符'a'写入fp所指向的文件的当前位置。
stdout是一个特殊的文件类型指针,它代表标准输出文件(如显示器),fputc(c,stdout)的功能是向终端(如显示器)输出存放在变量c中的一个字符。函数putchar(c)的功能也是向终端(如显示器)输出一个字符(存放在变量c中)。putchar(c)与fputc(c,stdout)的功能相同。(www.daowen.com)
例10.2 从键盘输入若干种水果的名称、产地和单价,若输入字符#,则结束输入。将这些信息写入e盘根目录下名为fruit.txt的文本文件中。输入格式为“水果名,产地,单价;”,如“apple,shanxi,8;grape,xinjiang,6;peach,shandong,5;banana,hainan,4;#”。
【分析】可以使用“w”方式打开文件,使用fputc函数写入所有字符。
程序代码如下:
程序执行完毕后,可以使用Windows操作系统中的记事本或写字板将文件fruit.txt打开,看到信息如下:
执行例10.2程序时,输入的水果名和产地都是英文单词,其实使用汉字输入也可以,但要注意输入逗号和分号时必须切换到英文半角状态。
例10.3 将例10.2建立的文本文件fruit.txt中的信息显示在屏幕上,然后将这个文件内容复制到另一个文本文件中,复制时将文件fruit.txt内容中的逗号换成空格。
【分析】可以使用“r”方式打开文件fruit.txt,使用fgetc函数读出所有字符。使用“w”方式打开另一个文件,首先使用函数fgetc读取fruit.txt的一个字符,然后使用函数fputc将字符写入另一个文件,写入前使用if语句判断字符是否为逗号,若是则换成空格。
程序代码如下:
程序执行完毕后,可以使用Windows操作系统中的记事本或写字板将文件fruitcopy.txt打开,看到将文件fruit.txt中的逗号换成空格之后的信息:
例10.4 编程将20个英文字符写入文件english.txt,然后读取文件english.txt中的字符,隔一个读取一个,读出并显示10个字符。
【分析】可以使用“w+”方式打开文件english.txt,使用fputc函数执行写入操作20次,再使用fgetc函数执行读取操作10次。为了实现隔一个读取一个,可使用fseek函数。
程序代码如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。