📜  C中的fputc()和fgetc()(1)

📅  最后修改于: 2023-12-03 15:14:24.964000             🧑  作者: Mango

C中的fputc()和fgetc()

在C标准库中,fputc()fgetc()是用来处理字符流的两个函数。它们分别可以写入和读取单个字符。

fputc()

fputc()函数的声明如下所示:

int fputc(int c, FILE *stream);

fputc()函数将字符c写入到stream指向的文件中。它返回一个非负整数表示写入c的字符,如果发生错误,则返回EOF。下面是一个简单的例子,将字符写入到文件中:

#include <stdio.h>

int main() {
   FILE *fp;
   char c = 'a';

   fp = fopen("test.txt", "w");
   if(fp == NULL) {
       printf("Failed to open file.");
       return -1;   
   }

   fputc(c, fp);
   fclose(fp);
   return 0;
}

在这个例子中,我们把字符'a'写入到了一个叫做test.txt的文件中。

fgetc()

fgetc()函数的声明如下所示:

int fgetc(FILE *stream);

fgetc()函数从stream指向的文件中读取下一个字符。它返回读取的字符,如果到达文件结尾或发生错误,则返回EOF。下面是一个简单的例子,从文件中读取一个字符:

#include <stdio.h>

int main() {
   FILE *fp;
   char c;

   fp = fopen("test.txt", "r");
   if(fp == NULL) {
      printf("Failed to open file.");
      return -1;   
   }

   c = fgetc(fp);
   printf("Read character %c", c);

   fclose(fp);
   return 0;
}

在这个例子中,我们打开了test.txt文件,并从中读取了一个字符。

操作标准输入输出流

除了从文件中读写数据外,fgetc()fputc()也可以用来读写标准输入输出流。例如,下面的代码在控制台中读取一个字符,然后在控制台上输出它:

#include <stdio.h>

int main() {
    char c;

    c = fgetc(stdin);
    printf("Read character %c\n", c);

    fputc(c, stdout);
    return 0;
}

在这个例子中,我们使用stdinstdout标准文件句柄来读取和写出字符。

总结

fputc()fgetc()是两个非常常用的字符流写入和读取函数。它们可以用来读写文件和标准输入输出流,并且在处理文本文件时非常有用。在使用它们时,一定要注意处理出现的错误和EOF的情况,以避免出现意外结果。