A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

1、字符写入函数fputc

该函数是以字节为单位,每次可向文件写入一个字符

调用形式为:
fputc(字符量,文件指针);
例如:
  1.   FILE *fp;
  2.     fp = fopen("test.txt", "a");
  3.         
  4.     char str[] = "I have a dream!";
  5. //        for (int i = 0; i < strlen(str); i++) {
  6. //            fputc(str[i], fp);
  7. //        }
  8. //        printf("写入成功!");
  9.         char ch = fgetc(fp);
  10.         printf("写入成功,读取文件内容为:%c",ch);
  11.         while (ch != EOF) {//如果ch等于EOF说明已经读取到文件的结尾了
  12.             putchar(ch);
  13.           ch = fgetc(fp);
  14.         }
复制代码


打印结果:

写入成功,读取文件内容为:II have a dream!


五、应用:保存键盘输入的字符串
【要求】从键盘接收一行字符,写入文件,再把该文件内容读出显示到控制台

代码如下:
  1. #include <stdio.h>

  2. int main(int argc, const char * argv[])
  3. {
  4.     FILE *fp;
  5.     fp = fopen("test3.txt", "w+");
  6.    
  7.     if(NULL == fp){
  8.         //如果等于null则说明打开失败,给用户提示
  9.         printf("打开失败,按任意键退出....");
  10.         getchar();//要求从键盘接收一个字符
  11.         exit(1);//表示非正常退出
  12.     } else{
  13.    
  14.         printf("请输入一个行字符串,回车键结束:");
  15.         char ch = getchar();
  16.         int count = 0;
  17.         
  18.         while (ch != '\n') {
  19.             fputc(ch, fp);
  20.             ch = getchar();
  21.             count++;
  22.         }
  23.         
  24.         printf("本次共输入了 %d 个字符\n",count);
  25.         
  26.         rewind(fp);//把文件指针再指向文件开头
  27.         count = 0;
  28.         ch = fgetc(fp);
  29.         
  30.         printf("读取文件内容为:");
  31.         while (ch != EOF) { //如果ch等于EOF说明已经读取到文件的结尾了
  32.             count++;
  33.             putchar(ch);
  34.             ch = fgetc(fp);
  35.             
  36.         }
  37.         printf("\n本次共读取了 %d 个字符\n",count);
  38.     }
  39.    
  40.     fclose(fp);
  41.     return 0;
  42. }
复制代码

打印结果:
请输入一个行字符串,回车键结束:I amamos! I want to fly in the sky!
本次共输入了 36 个字符
读取文件内容为:I am amos! I want to fly in the sky!

本次共读取了 36 个字符

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马