调用 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 }
View Code

  在屏幕中输入[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 }
View Code

  运行程序,结果如下:

技术分享

以上是关于调用 get(fgetc) 和 putc(fputc) 函数进行输入输出的主要内容,如果未能解决你的问题,请参考以下文章

C语言fputs fgets fputc fgetc fscanf fprintf及fopen操作的整理

C语言中的标准函数都有哪些

C语言中的标准函数都有哪些?

89 fcanf和fprintf

文件读写函数

15)文件函数例子