首页
学习
活动
专区
圈层
工具
发布

C语言常见的文件操作函数总结

参数有两个,一是int char,即要写入的字符,二是要写入文件的指针。 fputc写入成功时返回写入的字符的ASCII码,失败时返回EOF。...ASCII_百度百科 细节 由于fputc接受int型参数,故当把char类型传入时,其实发生了隐形的转换,也就是从char型转换为int型(该字符所对应的ASCII码)。...读取成功返回该字符的ASCII码(int),失败则EOF,当读取到文件末尾返回EOF(-1),fgetc一般配合循环使用。...如: char buffer[5]; gets(buffer); // 输入 "123456" 时,buffer 溢出(仅能容纳4字符+1个\0) 由上述原因,从C11标准开始,gets 被正式从C语言标准库中移除...[a-z],%c", a, b, &c); printf("%s\n%s\n%c", a, b, c); ③%[^ 内容],意思是只匹配字符串中符合内容中的值 如: sscanf(str, "

68210

C语言入门系列之11.文件和文件操作

文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。 操作系统是以文件为单位对数据进行管理的,示意如下: ?...例如: 输入文件,终端键盘等 输出文件,显示屏和打印机等 (3)按数据的组织形式: ASCII文件(文本文件) 每一个字节放一个ASCII代码。...二进制文件 把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 例如整数10000D在内存中的存储形式以及分别按ASCII码形式和二进制形式输出如下图所示: ?...fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF,可用此来判断写入是否成功。...= EOF){ putchar(ch); ch = fgetc(fp); } EOF不是可输出字符,因此不能在屏幕上显示; 由于字符的ASCII码不可能出现-1,因此EOF定义为-1是合适的

1.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言程序设计——文件】文件操作(头歌实践教学平台习题)【合集】

    文件读取操作 当文件以可读模式(如 "r"、"r +"、"a +" 等)打开后,可使用 fgetc()、fgets() 等函数来读取文件内容。...= EOF) { putchar(c); } fclose(fp); return 0; } 在该示例中,fgetc(fp) 从文件指针 fp 所指向的文件中读取一个字符并返回...若读取到文件末尾,fgetc() 函数会返回 EOF(EOF 是定义在 头文件中的常量,通常值为 -1),putchar(c) 函数用于将字符 c 输出到控制台。...像 fgetc() 函数,它从文件指针 fp 所指向的文件中每次读取一个字符,并返回该字符对应的 ASCII 码值(如果读取成功的话)。...= EOF 中,先执行 str = fgetc(fp),这一步调用 fgetc() 函数从文件中读取一个字符,并把返回值(字符对应的 ASCII 码值或者 EOF)赋给 str,然后判断 str 是否等于

    69410

    很“迷”的字符与字符串

    1.1 ASCII 码 存放在字符类型中的变量,都可以被解释为 ASCII 字符表中的对应字符。...除此之外还打印输出了字符串中首位和末位的字符,实验结果如下图所示 ?...某些编译器(如VC6)支持用 fflush(stdin) 来清空输入缓冲,但是并非所有编译器都要支持这个功能(如linux 下的gcc),因为标准中根本没有定义 fflush(stdin),所以这种方法的移植性不是很好不建议使用...= EOF && c != '\n'); 不停地使用getchar()获取缓冲中字符,直到获取的c是“\n”或文件结尾符EOF为止。 ?...这里可以看到,对于输入 “a b”, scanf()将空格与回车符均作为输入,并且打印输出他们的 ascii 码;之后的 scanf() 没有打印输出空格的 ascii 码,是因为定义的输入是 int

    1.5K20

    使用Shell脚本实现FTP自动上传和下载文件

    ftp常见的几个标志有: -d:使用调试模式,但必须编辑 /etc/syslog.conf 文件并添加以下中的一项:user.info FileName 或 user.debug FileName。...-g:禁用文件名中的元字符拓展,即取消全局文件名。 -i :关闭多文件传输中的交互式提示。 -n:防止在起始连接中的自动登录。...需要使用binary方式传输的文件类型有ISO文件、可执行文件、压缩文件、图片等。此类型可能比 ASCII 传送更有效。 – ebcdic:将文件传输类型设为 EBCDIC。...切换散列符号 (#) 打印 1 hash 当用get或put命令传送一个数据块时,让FTP显示一个#,这是看得见的确定数据在传输的信号,在用户不确信网络是否工作时有用。...注: 星号*必须有,否则下载下来的就一个文件index.html -r参数就是用来目录下载的

    6.9K32

    Linux下使用Shell脚本实现FTP自动上传和下载文件

    ftp常见的几个标志有: -d:使用调试模式,但必须编辑 /etc/syslog.conf 文件并添加以下中的一项:user.info FileName 或 user.debug FileName。...-g:禁用文件名中的元字符拓展,即取消全局文件名。 -i :关闭多文件传输中的交互式提示。 -n:防止在起始连接中的自动登录。...需要使用binary方式传输的文件类型有ISO文件、可执行文件、压缩文件、图片等。此类型可能比 ASCII 传送更有效。 – ebcdic:将文件传输类型设为 EBCDIC。...切换散列符号 (#) 打印 1 hash 当用get或put命令传送一个数据块时,让FTP显示一个#,这是看得见的确定数据在传输的信号,在用户不确信网络是否工作时有用。...注: 星号*必须有,否则下载下来的就一个文件index.html -r参数就是用来目录下载的

    11.7K02

    C语言----文件操作

    如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂本⽂件。 ⼀个数据在⽂件中是怎么存储的呢?...下面的10000里面的每个数字就是以ASCII进行存储的 0的ASCII大小是48 1的ASCII大小是49 那么10000在内存中的存储形式就是下面的样子了 将10000转换为二进制写到文件里面去...每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名 字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。...= fgetc(pf); printf("%c\n", ch);//这里打印出来的就是b,打印完b,光标就指向了c //按照常规的话,下面的代码中的光标就指向了c,但是我们想直接读e...= EOF) { printf("%c ", ch);//将字符依次打印出来 } int reet = feof(pf); printf("%d", reet

    89810

    C语言:文件操作

    如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂本⽂件。...⼀个数据在内存中是怎么存储的呢 字符⼀律以ASCII形式存储,数值型数据既可以⽤ASCII形式存储,也可以使⽤⼆进制形式存储。...如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占⽤5个字节(每个字符⼀个字节),⽽⼆进制形式输出,则在磁盘上只占4个字节(VS2019测试)。...每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。...,返回读取到的字符的ASCII码值 读取失败的时候,返回EOF EOF是一个文件的结束标志 下面这个代码我们可以看到从文件里读取了5个字符。

    1.1K10

    【通关文件操作(上)】--文件的意义和概念,二进制文件和文本文件,文件的打开和关闭,文件的顺序读写

    数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。...一个数据在文件中如何存储呢? 字符⼀律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。...如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符⼀个字节),而二进制形式输出,则在磁盘上只占4个字节。...每个被使用的文件都在内存中开辟了⼀个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...format :格式化字符串,包含要写⼊的⽂本和格式说明符(如 %d 、 %s 等)。 ... :可变参数列表,提供与格式字符串中说明符对应的数据。

    23510

    【C语言】C 语言文件操作全解析:从基础到进阶

    如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 一个数据在文件中是怎么存储的呢?...字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。...如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节。...每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...return 0; } 如果我们将fprintf中的fp改为stdout将会直接给信息打印到屏幕上。

    17210

    C文件读写

    并且,关闭所有资源再结束程序是一个良好的编程习惯。 文本模式与二进制模式 使用十六进制查看器,打开这个文件 图片 很显然,这个文件里面记录了刚刚写入字符的ASCII码。...图片 十六进制0A,换行符,转义序列为'\n'。 十六进制0D,回车,转义序列为'\r'。 为什么会出现回车和换行两个字符 在早期的电传打字机上,有一个部件叫“字车”,类似于打印机的喷头。...C语言在Windows系统上写入文件时,会将\n写入为\r、\n。而读取文件时,会将\r、\n读取为\n。 如果在windows系统上运行刚刚的代码,文件内换行将是\r、\n两个字符。...文件指针 图片 文件结构pFile中,保存了一个当前文件读写位置的指针。文件由fopen函数打开后,这个指针指向文件中第一个字节。当任意文件操作函数读写相应长度的字节后,指针也会偏移相应的长度。...二进制模式 图片 字节0A是数值int类型的数值0A 00 00 00的前1个字节,刚好为\n的ASCII码。在文本模式下,字符\n将会被自动替换为\n\r ,再输出到文件中。

    4.1K00

    详解文件操作

    简单来说,文件就是 “存放在磁盘上的一段有意义的数据”,比如我们日常接触的.txt文档、.jpg图片、.exe程序、.c源代码等,本质上都是不同类型的文件。 2.文件的分类?...人类不可读(用记事本打开是乱码)存储效率高、读写速度快、能保存复杂数据(如结构体、图像)图片(.jpg)、音频(.mp3)、可执行程序(.exe)、数据库文件 3.文件名 ⼀个⽂件要有⼀个唯⼀的⽂件标识...语言引入了文件指针(FILE*): FILE是 C 标准库定义的一个结构体类型(在中声明),内部包含了文件的状态(如读写位置、打开模式、错误标记等)。...当读取到 ASCII 码为 255 的字符(如某些特殊符号)时,会被转换为 -1(与EOF的值相同),导致程序无法区分 “读取到 255 字符” 和 “读取到文件末尾”。...feof(pf) → 真,进入循环; 执行 fgetc(pf):因为文件为空,读取失败,返回 EOF(-1),同时系统设置 feof(pf) 为 真(因为读取了超出文件末尾的数据); 执行 “处理”:打印

    33410

    【C语言】文件操作超详解(全)

    二进制文件:数据在内存中以二进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。 文本文件:如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。...以ASCII字符的形式存储的文件就是文本文件。 那么一个数据在文件中是怎么存储的呢? 字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。...如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节。...每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...它与scanf 类似,但输入源是内存中的字符串而非控制台或文 件。常用于解析字符串中的结构化数据(如提取数字、分割文本等)。 参数: str :要解析的源字符串(输入数据来源)。

    36510

    C语言 —— 指尖跃迁 刻印永恒 - 文件操作

    以ASCII字符的形式存储的⽂件就是文本文件 数据在内存中如何存储呢?...字符⼀律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式储 如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符⼀个字节),而⼆...,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。...若返回值为EOF,说明文件结束,EOF是文件结束标志,值为-1 int main() { FILE* pb = fopen("text.txt", "r");//为输入打开一个文本文件 if...= EOF)//判断是否成功输入数据 { printf("%c", ch);//成功读取则将外部文件中的数据输入到程序中 } printf("\n"); fclose(pb);//关闭文件

    73310

    【C语言标准库函数】标准输入输出函数详解:格式化输入输出&字符输入输出

    解决方案:指定读取长度(如%s改为%9s,为数组长度-1,预留'\0'位置)。 %c不跳过空白字符:使用%c读取字符时,会读取输入中的空白字符(如前一次输入的换行符),导致读取错误。...码范围),可直接传入字符常量(如'A')或ASCII码值(如65)。...2.1.4 使用场景与示例 使用场景:高频单字符输出(如逐字符打印字符串、输出进度符号)、简单字符提示(如输出“Y/N”选择项)。...隐患示例:若用char ch接收返回值,当输入字符ASCII码为255(如扩展ASCII字符)时,会被解读为-1(EOF),导致循环误退出。...规避方案: ①指定读取长度:在格式符中添加数组长度-1的限制(如buf[10]用"%9s"),预留1字节存字符串结束符'\0'; ②使用更安全的fgets函数替代:fgets(buf, sizeof(buf

    45710

    【C语言】文件与文件操作

    数据⽂件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。...当然我们也可以按储存方式区分 文本文件 求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂ 本⽂件。...关于具体用法可以查询 C++网站 c++ 4 文件的随机读写 这里稍微复杂一点,会使用fseek函数,ftell函数,rewind函数(都包含在中)。...= EOF) // 标准C I/O读取⽂件循环 { putchar(c); } //判断是什么原因结束的 if (ferror(fp)) puts("I/O error when reading...如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的⼤⼩根据C编译系统决定的。

    51010

    Shell常用命令使用说明

    uniq 可检查文本文件中重复出现的行列 语法 uniq [-cdu][-f][-s][-w][--help][--version][输入文件][输出文件] 参数 -c...-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -m 将几个排序好的文件进行合并。 -M 将前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。...- [^] # 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。...将所有输入读取(吸取)到数组中;应用过滤器; -r 输出原始字符串,而不是JSON文本; -R 读取原始字符串,而不是JSON文本; -C...-W re-interval or –re-inerval 允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。

    5.6K20
    领券