调用 get(fgetc) 和 putc(fputc) 函数进行输入输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用 get(fgetc) 和 putc(fputc) 函数进行输入输出相关的知识,希望对你有一定的参考价值。
当成功地打开文件后,接下来的事情就是对文件进行输入或输出操作,最简单的是调用 getc(或 fgetc) 和 putc(或 fputc) 函数进行字符的输入和输出。
1.调用 putc(或 fpuct) 函数输出一个字符
putc 函数的调用形式如下:
putc(ch, fp);
这里 ch 是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量;fp 是文件指针。putc(ch, fp) 的功能是将字符 ch 写到文件指针 fp 所指的文件中去。如果输出成功,putc 函数返回所输出的字符;如果输出失败,则返回一个 EOF 值。EOF 是在 stdio.h 库函数文件中定义的符号常量,其值等于 -1。
fputc 函数的调用形式和功能与 putc 函数完全相同。
例1 把从键盘输入的文本按原样输出到名为 file_a.dat 的文件中,用字符 @ 作为键盘输入结束的标志。
(1)打开文件
(2)从键盘输入一个字符
(3)判断输入的字符是否为 @,若是,结束循环,执行步骤(7)
(4)把刚输入的字符输出到指定的文件中
(5)从键盘输入一个字符
(6)重复步骤(3)至(5)
(7)关闭文件
(8)程序结束
程序如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 FILE *fpout; 7 char ch; 8 if ((fpout = fopen("F:\\\\WEB\\\\TEST\\\\file_a.dat", "w")) == NULL) 9 { 10 printf("Cant‘t open this file !\\n"); 11 exit(0); //使用exit函数,必须包含stdlib.h头文件 12 } 13 ch = getchar(); 14 while (ch != ‘@‘) 15 { 16 putc(ch, fpout); 17 ch = getchar(); 18 } 19 fclose(fpout); 20 return 0; 21 }
在屏幕中输入[email protected],@作为输入结束标志。
文件 file_a.dat 的输出结果如下:
2.调用 getc(或 fgetc)函数输入一个字符
getc 函数的调用形式如下:
ch = getc(fp);
fp 是文件指针。函数的功能是从 fp 指定的文件中读入一个字符,并把它作为函数值返回。以上表达式中 getc 函数把从文件中读入的一个字符赋给变量 ch。
fgetc 函数的调用形式和功能与 getc 函数完全相同。
例2 把已存在的 file_a.dat 文本文件中的内容原样输出到终端屏幕上。
(1)打开文件
(2)从指定文件中读入一个字符
(3)判断读入的是否是文件结束标志,若是,结束循环,执行步骤(7)
(4)把刚输入的字符输出到终端屏幕
(5)从文件中再读入一个字符
(6)重复步骤(3)至(5)
(7)关闭文件
(8)程序结束
注意:无论调用哪种函数读取文件,一定要先执行一次读操作,然后才能判断文件是否结束。
程序如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 FILE *fpin; 7 char ch; 8 9 if ((fpin = fopen("F:\\\\WEB\\\\TEST\\\\file_a.dat", "r")) == NULL) 10 { 11 printf("Can‘t open this file !\\n"); 12 exit(0); 13 } 14 15 ch = getc(fpin); 16 //判断文件是否结束可以使用 feof 函数, 17 //该函数适用于文本文件和二进制文件 18 //函数返回值为 1 则文件结束;0 则未结束 19 while (ch != EOF) //or while(feof(fpin) == 0) 20 { 21 putchar(ch); 22 ch = getc(fpin); 23 } 24 fclose(fpin); 25 26 return 0; 27 }
运行程序,结果如下:
以上是关于调用 get(fgetc) 和 putc(fputc) 函数进行输入输出的主要内容,如果未能解决你的问题,请参考以下文章