首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏bit哲学院

    fgetc函数踩过的坑

    参考链接: C++ fgetc() 最近从中文的文本中用 fgetc()函数读取数据时,数据读到一部分程序提早跳出。 源程序中fgetc使用方法如下  #include<stdio.h> #include<stdlib.h> void main() {     FILE *fp = fopen("1.txt", "r" );     if (NULL == fp)     {         return;     }     char ch;     while ( ( ch= fgetc(fp) ) !   上述代码中的  ch 类型应该定义成 int   int ch;       while ( ( ch= fgetc(fp) ) ! = EOF)  //不断读取文件知道结束     {         putchar(ch); //打印     } 分析  : fgetc 格式为  int fgetc(FILE *stream

    74800发布于 2021-02-12
  • 来自专栏二猫の家

    C语言fgetc和fputc函数用法详解

    主要使用两个函数,分别是 fgetc() 和 fputc()。 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。 fgetc() 的用法为: int fgetc (FILE *fp); 1 fp 为文件指针。fgetc() 读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回EOF。 fgetc() 的返回值类型之所以为 int,就是为了容纳这个负数(char不能是负数)。 EOF 不绝对是 -1,也可以是其他负数,这要看编译器的实现。 fgetc() 的用法举例: char ch; FILE *fp = fopen("D:\\demo.txt", "r+"); ch = fgetc(fp); 123 表示从D:\demo.txt 使用 fgetc() 函数后,该指针会向后移动一个字节,所以可以连续多次使用 fgetc() 读取多个字符。 注意:这个文件内部的位置指针与C语言中的指针不是一回事。

    1.4K20编辑于 2022-11-30
  • 来自专栏站长的编程笔记

    【说站】c语言中fgetc函数的介绍

    c语言中fgetc函数的介绍 1、fgetc函数返回的字符实际上是文件流中位置指针指向的字符。 当fgetc函数读取错误时,返回EOF并设置文件错误标志位。 \n");         exit(1);     }     while((c = fgetc(fp)) ! = EOF)         printf("%c", c);     fclose(fp); } 以上就是c语言中fgetc函数的介绍,希望对大家有所帮助。

    61110编辑于 2022-11-24
  • 来自专栏li_wait

    文件的顺序读写——顺序读写函数——fgets、fgetc、fputs、 fputc

    一、fgetc和fputc函数 1.1 fputc 返回类型int: 如果成功读取字符,返回的是字符的ASCII码值——char 如果读取失败或者遇文件末尾,则返回EOF(-1) ——int 为了统一 ,将函数的返回类型定为int(char类型提升为int类型) 1.2 fgetc 返回指定流的内部文件位置指示器当前指向的字符。 perror("fopen: r"); return 1; } else { int ch = 0; // ch 为int类型,以便接收fgetc 的返回值 while ((ch = fgetc(pf2)) !

    1.4K10编辑于 2024-10-23
  • 来自专栏jiajia_deng

    fgetc、fputc 一次读写一个字符

    在C语言中,文件读写方式有很多种,比如一次读一个字符、一次读一行、一次读指定大小的内容等等方式,我们会依次介绍以上几种方式,本文开头,首先介绍一次读写一个字符的方法,其中需要使用到的函数为fgetc(读 WriteFile.txt”, “w”); if (NULL == pWriteFile) { fclose(pFile); return -1; } char ch; // EOF为文件的结束标志,如果fgetc 返回的结果为EOF证明读到了文件末尾 // 另外还有feof方式判断是否到文件末尾,但由于该函数缺陷过多,不推荐大家使用 while ((ch = fgetc(pFile)) !

    26910编辑于 2023-10-20
  • 来自专栏韩曙亮的移动开发专栏

    【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )

    读取单个字符 ---- 1. fgetc 函数简介 : ① 头文件 : stdio.h ② 函数原型 : int fgetc(FILE *stream) ④ 参数 ( File *stream ) : 读取单个字符 FILE* file_text_read_getc = fopen("my_file.txt", "r"); //读取单个字符串 int fgetc_result = fgetc(file_text_read_getc ); //将 int 类型变量转为 char 类型变量 char fgetc_result_char = fgetc_result; cout << "fgetc 读取的单个字符 : " << 读取单个字符 FILE* file_text_read_getc = fopen("my_file.txt", "r"); //读取单个字符串 int fgetc_result = fgetc(file_text_read_getc ); //将 int 类型变量转为 char 类型变量 char fgetc_result_char = fgetc_result; cout << "fgetc 读取的单个字符 : " <<

    3.4K10编辑于 2023-03-27
  • 来自专栏韩曙亮的移动开发专栏

    【C 语言】文件操作 ( 按照单个字符的方式读写文件 | fgetc 函数 | fputc 函数 )

    文章目 一、文件名路径设置 二、文件打开方式 三、fputc 函数 | 按照字符方式写文件 1、fputc 函数 2、代码示例 四、fgetc 函数 | 按照字符方式读文件 1、fgetc 函数 2 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中 // 命令行不要退出 system("pause"); return 0; } 执行结果 : 四、fgetc 函数 | 按照字符方式读文件 ---- 1、fgetc 函数 fputc 函数 : 从 FILE *stream 指针指向的文件中 , 读取一个字符 ; #include <stdio.h> int fgetc(FILE *stream); 2、代码示例 代码示例 : #include <stdio.h> #include <stdlib.h> #include <string.h> /** * feof(fp)) { // 读取一个字符 char c = fgetc(fp); // 打印单个字符 printf("%c",

    82120编辑于 2023-03-30
  • 来自专栏走在努力路上的自己

    文件操作(一、fgets和fputs、fscanf和fprintf、fread 和 fwrite、fopen和fclose、fgetc和fputc)

    return 1; } //写文件 //关闭文件 fclose(pf); pf = NULL; return 0; } 如果文件不存在: 5.3字符输入fgetc和输出fputc int perror("fopen->data2.txt");//打开data2.txt失败 return 1; } //数据的读写(拷贝) int ch = 0; while ((ch = fgetc

    1.8K11编辑于 2024-01-26
  • 来自专栏饶文津的专栏

    【计导作业】文件——过滤注释

    ;//只读方式打开未注释的文件before.c,f1指向它 FILE *f2=fopen("after.c","w");//只写方式打开after.c,f2指向它 while((c=fgetc =EOF)//一个个字符读,读到文件尾 { if(c=='/')//遇到‘/’ { c=fgetc(f1); if (c=='/')//遇到‘//’的情况 { while((c=fgetc(f1))! ')//遇到‘/*’的情况 { while(1) { while((c=fgetc =EOF) { if((c=fgetc(f1))!

    84110发布于 2020-06-02
  • 来自专栏走在努力路上的自己

    文件操作(二、scanf/fscanf/sscanf​与printf/fprintf/sprintf​、fseek与ftell与rewind、feof)

    (pf); //printf("%c\n", ch); //ch = fgetc(pf); //printf("%c\n", ch); //ch = fgetc(pf); //printf ("%c\n", ch); //ch = fgetc(pf); //printf("%c\n", ch); int n = ftell(pf); printf("%d\n", n); / 文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF . ,都会返回EOF​ while ((c = fgetc(fp)) ! = EOF) // 标准C I/O读取文件循环​ // 使用fgetc函数从fp指向的文件中逐个字符地读取内容。

    53610编辑于 2024-01-26
  • 来自专栏蒙奇D索隆的学习笔记

    【C语言加油站】C语言文件随机读写完全指南:fseek、ftell、rewind等五大函数深度解析

    无论是字符级的 fgetc/fputc,字符串操作的 fgets/fputs,还是格式化的 fscanf/fprintf,以及二进制的 fread/fwrite,这些函数都遵循着"从头到尾、依次处理"的顺序读写模式 读取当前位置的文本信息 int ch = fgetc(pf); while (ch ! 读取当前位置的文本信息 int ch = fgetc(pf); while (ch ! 移动光标 int ch = fgetc(pf); while (ch ! ; } 这一次我们测试的逻辑与前面的逻辑一致: 先通过 fgetc 来移动光标 再通过 fgetpos 来获取光标位置信息 之后再一次通过 fgetc 来移动光标 最后通过 fsetpos 来设置光标位置

    25810编辑于 2025-11-05
  • 来自专栏程序员互动联盟

    【专业技术】C语言EOF如何使用?

    int c;   while ((c = fgetc(fp)) ! fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。 feof(fp)) {     c = fgetc(fp);     do something;   } 但是,这样写也有问题。 fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾 所以,最保险的写法是像下面这样:   int c = fgetc(fp);   while (c !

    2.7K80发布于 2018-03-15
  • 来自专栏学习

    文件操作学不懂,小代老师带你深入理解文件操作(下卷)

    () { FILE* pf = fopen("test.txt", "r"); if (pf == NULL) { perror(pf); return 1; } int ch = fgetc (pf); printf("%c", ch); ch = fgetc(pf); printf("%c", ch); //fseek(pf, 6, SEEK_SET); //fseek(pf, -1, SEEK_END); fseek(pf, 2, SEEK_CUR); ch = fgetc(pf); printf("%c", ch); free(pf); pf = NULL; return ⽂本⽂件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: • fgetc 判断是否为 EOF . 都会返回EOF while ((c = fgetc(fp)) !

    22710编辑于 2024-10-17
  • 来自专栏萌新的日常

    文件的使用详解

    pf);//将字符传递到流中 foutc('b',pf); fputc('c',pf); fclose(pf);//关闭文件 pf=NULL; return 0; } 2.字符输入函数——fgetc ","r");//从文件test.txt中读 if(pf==NULL)//假设test.txt里面为abcd { perror("fopen"); return 1; } int ret=fgetc (pf); printf("%c\n",ret);//a ret=fgetc(pf); printf("%c\n",ret);//b ret=fgetc(pf); printf("%c\n (pf); printf("%c\n",ret);//a fseek(pf,-2,SEEK_END); ret=fgetc(pf); printf("%c\n",ret);//e ret=fgetc (pf); printf("%c\n",ret);//a fseek(pf,2,SEEK_SET); ret=fgetc(pf); printf("%c\n",ret);//c ret=fgetc

    1K10编辑于 2022-11-10
  • 来自专栏C++/Linux

    【C语言】文件操作

    (pf); printf("%c\n", ch);//a ch = fgetc(pf); printf("%c\n", ch);//b ch = fgetc(pf); printf (pf, 1, SEEK_SET); ch = fgetc(pf); printf("%c\n", ch);//希望读到的是b //关闭文件 fclose(pf); (pf); printf("%c\n", ch);//a ch = fgetc(pf); printf("%c\n", ch);//b ch = fgetc(pf); printf ("%c\n", ch);//c ch = fgetc(pf); printf("%c\n", ch);//d //让文件指针的位置回到文件的起始位置 rewind(pf) 文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF .

    50010编辑于 2024-03-01
  • 来自专栏STM32学习

    STM32串口的标准输入输出重定向

    所谓串口重定向就是修改库函数,屏蔽原来函数的功能执行新函数的功能,由于printf函数和scanf函数是逻辑代码,跟硬件环境无关,属于上层函数,我们如果需要重定向这两个函数只需要我们修改它们的底层函数接口fputc函数以及fgetc 函数,fputc函数重定向为从标准输出到串口以及fgetc函数标准输入,从串口中获取数据。 fputc函数原型:int fputc(int /*c*/, FILE * /*stream*/); fgetc函数原型:int fgetc(FILE * /*stream*/); 3、STM32 (USART1->SR&1<<7)){} //等待发送完成 return c; } int fgetc(FILE *stream) { while(!

    2K10编辑于 2023-12-31
  • 来自专栏C语言基础

    确定不进来看看吗?详细讲解C语言文件操作(示例分析每个函数)

    = NULL) { while ((c=fgetc(pFile))! = fgetc(pFile); printf("%c", tmp); tmp = fgetc(pFile); printf("%c", tmp); tmp = fgetc(pFile) , -8, SEEK_END);//将光标从文件结尾处,往前偏移8个位 tmp = fgetc(pFile); printf("%c", tmp); tmp = fgetc(pFile); tmp = fgetc(pFile); printf("%c", tmp); tmp = fgetc(pFile); printf("%c", tmp); tmp = fgetc(pFile 文本文件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: fgetc 判断是否为 EOF .

    99520编辑于 2023-05-04
  • 来自专栏阮一峰的网络日志

    EOF是什么?

    int c; while ((c = fgetc(fp)) ! fgetc()不仅是遇到文件结尾时返回EOF,而且当发生错误时,也会返回EOF。因此,C语言又提供了feof()函数,用来保证确实是到了文件结尾。 feof(fp)) {     c = fgetc(fp);     do something;   } 但是,这样写也有问题。 fgetc()读取文件的最后一个字符以后,C语言的feof()函数依然返回0,表明没有到达文件结尾;只有当fgetc()向后再读取一个字符(即越过最后一个字符),feof()才会返回一个非零值,表示到达文件结尾 所以,最保险的写法是像下面这样:   int c = fgetc(fp);   while (c !

    2.8K30发布于 2018-04-12
  • 来自专栏同步文章1234

    【C-文件操作】一文教你如何将代码的数据持久化

    以下文件操作函数的头文件都是stdio.h  3.文件的打开和关闭 3-1文件的打开 3-2 文件的关闭 4.文件的顺序读写  4-1字符输出函数,文件的写入-----fputc ​编辑 4-2字符输入函数:文件的读出----fgetc int fgetc(FILE* stream) 返回值:打开成功返回读出的那个字符;   打开失败返回EOF, //读文件,mode改为r char ch1 = fgetc(pf); char ch2 = fgetc(pf); char ch3 = fgetc(pf); char ch4 = fgetc(pf); printf("%c%c%c%c", ch1, ch2, ch3, ch4 ); char ch = 0; while ((ch = fgetc(pf)) ! ("%c\n", ch1); char ch2 = fgetc(pf);//拿到6,指针向后偏移一个位置 printf("%c\n", ch2);//6  long  ftell(FILE*

    1.1K30编辑于 2023-01-16
  • 文件读写(相关函数详解)

    函数 fgetc的参数如下: 它的作用是返回stream对应的文件里面的一个字符(它的返回值),所以需要一个字符变量来接收,当读取失败时返回-1,虽然说是返回字符,但fgetc函数的返回类型是int,不过这没关系每个字符都有对应的 pf) { perror(fopen); return 1; } char c; while ((c = fgetc(pf))! (pf); printf("%c ", a); fseek(pf, 2, SEEK_CUR); b = fgetc(pf); printf("%c ", b); fseek(pf, -2, SEEK_END); c = fgetc(pf); printf("%c ", c); fclose(pf); return 0; } test.txt文件内容 运行结果: 4.2 ftell (pf)); rewind(pf); printf("%c ", fgetc(pf)); fclose(pf); return 0; } 5.错误检测 为什么要有错误检查呢 fgetc 如果读取正常

    14210编辑于 2025-11-15
领券