首页 > 其他分享 >学习笔记2

学习笔记2

时间:2023-09-17 20:35:52浏览次数:42  
标签:fp 文件 函数 二进制 FILE 笔记 学习 文本文件

文件操作内容

在C语言中,二进制文件是以数据在内存中的二进制存储形式(内码)原样保存的文件;而文本文件则是以字符的ASCII码值进行存储与编码的文件,文件的内容就是字符。文本文件和二进制文件都可以作为用户的数据文件,当写数据到磁盘时,文本文件需要把内存中的二进制形式转换成ASCII码的形式,要耗费转换时间,且占用的存储空间大,但优点是文本文件可读的并易于修改;而二进制文件所占的存储空间小,输出时无需转换,但一个字节并不对应一个字符,所以是不可读的,也很难修改。

  • 系统调用函数:open()、read()、write()、lseek()、close()
  • I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()
    每个I/O库函数的根都在对应的系统调用函数中。

文本文件

  1. 字符读写:
  • int fgetc(FILE *fp): //从fp中获取一个char,强制转换为int
  • int ungetc(int c, FILE *fp);//将fgetc()获得的先前字符推回到流中
  • int fputc(int c, FILE *fp);//将字符放入fp
  1. 行读写:
  • fgets(char *buf, int size, FILE *fp)//从fp中读取最多为一行(以\n结尾)的字符
  • int fputs(char *buf, FILE *fp) //将buf中的一行写入fp中
  1. 任意位置读写
  • fseek(FILE *fp, long offset, int origin)//在文件中定位到指定位置
  • ftell(FILE *fp) //获取当前文件位置指针的位置
  • fread(void *buf, size_t size, size_t count, FILE *fp)//从文件中读取指定长度的数据块
  • fwrite(const void *buf, size_t size, size_t count, FILE *fp)//将指定长度的数据块写入文件
    在使用这些函数前打开文件(使用fopen),操作完成后关闭文件(使用fclose)。

二进制文件和文本文件转换

  1. 从文本文件转换为二进制文件:
    创建input.txt文件,文件内容为学号。
    使用fopen函数打开文本文件,并用fscanf等函数读取文本文件中的数据。
    使用fopen函数创建一个二进制文件,并用fwrite函数将读取到的数据写入到二进制文件中。
    使用fclose函数关闭文件。
    使用cat命令查看intput.txt文件和output.bin文件内容。

    fopen()中的参数可以指定为:“r”、“w”、“a”,分别代表读、写、追加。每个模式字符串可包含一个+号,表示同时读写,或者在写入、追加情况下,如果文件不存在则创建文件。
    “r+”:表示读/写,不会截断文件。
    “w+”:表示读/写,但是会先截断文件;如果文件不存在,会创建文件。
    “a+”:表示通过追加进行读/写;如果文件不存在,会创建文件。
  2. 从二进制文件转换为文本文件:
    使用转换的二进制文件output.bin,将其转换为文本文件output.txt,文件内容为学号。
    使用fopen函数打开二进制文件,并用fread函数读取二进制文件中的数据。
    使用fopen函数创建一个文本文件,并用fprintf等函数将读取到的数据写入到文本文件中。
    使用fclose函数关闭文件。

数据结构读写

  1. 将数据结构写入文件:
    使用fopen函数打开文件,并使用fwrite函数将数据结构写入文件。
    使用fclose函数关闭文件。
  2. 从文件读取数据结构:
    使用fopen函数打开文件,并使用fread函数从文件中读取数据结构。
    使用fclose函数关闭文件。

苏格拉底挑战

I/O库函数知识点苏格拉底挑战





I/O库函数模式知识点苏格拉底挑战






标签:fp,文件,函数,二进制,FILE,笔记,学习,文本文件
From: https://www.cnblogs.com/wzj1234/p/17708376.html

相关文章

  • 学习笔记(2)
    一、任务详情自学教材第九章,提交学习笔记(10分)本章是复习C语言中的文件操作内容,结构化从文本文件操作,二进制文件操作两个大内容考虑,以前可能只关注文本文件的操作,我们以后更多的是操作二进制文件。文本文件中考虑字符读写,行读写,任意位置读写等文件操作都有什么?二进制文件和文......
  • golang项目搭建笔记-cobra
    cobra介绍GitHub地址cobra中,一个命令主要概念为command,arguement,flag,可以理解为谓语、宾语、状语格式为APPNAMECOMMANDARG--FLAG,例如:gitcloneURL--bare项目搭建cobra提供了非常方便的工具cobra-cli,可以快速添加命令,参考官方文档新建项目#进入项目目录gomodin......
  • 第九章“学习笔记”
    ------------恢复内容开始------------I/O库函数一、库函数基本内容 系统调用函数:open()、read()、write()、lseek()、close(); I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()在系统调用中,文件描述符fd是一个整数,在库I/O中,fp是一个文件流指针。fopen()发出open()系统调用用......
  • 学习后的顺序表(结点内容只设学号、姓名),表内采用数组,数组0位存放数据,相关的函数均按此
    #include<iostream>#include<string.h>usingnamespacestd;typedefstruct{ intid; stringname;}Node;//结点定义typedefstruct{ Node*element;//基地址(动态长度) intlength;//表长}Linklist;#defineMAXSIZE100//最大长度voidmenu();//声明菜单函数voidCreatelist(Lin......
  • 《信息安全系统设计与实现》第二周学习笔记
    第九章I/O库函数I/O库函数与系统调用系统调用函数open()read()write()lseek()close()I/O库函数fopen()fread()fwrite()fseek()fclose()I/O库函数的算法fread算法:第一次调用fread()时候,FILE结构体的缓冲区是空的,fread()使用保......
  • MySQL笔记目录
    MySQL目录本视频学习自尚硅谷的MySQL教程,原地址在这笔记源自官方提供笔记,根据自己的理解重新排版修改、并增添了一些内容初级篇第一章MySQL概述第二章MySQL环境搭建(mysql环境安装、配置、卸载、登录)第三章SQL介绍DDL数据库和表的操作第四章MySQL数据类型......
  • 信息安全系统设计与实现——学习笔记2
    任务详情:自学教材第九章,提交学习笔记Part1知识点归纳&GPT提问知识点归纳系统调用函数和I/O库函数系统调用函数是直接与操作系统交互的函数,用于进行底层的文件操作。I/O库函数则是建立在系统调用函数之上的高级函数,提供更方便和易于使用的接口来进行文件的读写操作。这些函......
  • 2020-12-17-mc模组开发笔记
    idea乱码在help里进VM参数设置https://www.huaweicloud.com/articles/9096546b90dc8c52d52138d01875b8ed.html->与Lambda表达式tileEntityType->https://www.runoob.com/java/java8-lambda-expressions.html简单说就是return后面一坨给前面,后面一坨可以是函数表达式方块......
  • 学习笔记2
    I/O库函数一、知识点总结1.I/O库函数与系统调用每个I/O库函数的根都在对应的系统调用函数中。2.I/O库函数的算法fread算法(1)第一次调用:FILE结构体的缓冲区是空的。(2)随后的每次调用:尝试满足来自FILE结构体内部缓冲区的调用。fwrite算法与fread()算法相似,只是数据传输方......
  • 学习笔记2(第九章)
    一、知识点归纳1、C语言中常用的文件操作函数文件打开和关闭fopen:FILE*fopen(constchar*filename,constchar*mode);打开一个文件,如果成功,返回一个FILE*指针,否则返回NULL.mode可以是:"r":只读打开"w":写入打开(如果文件存在则清空内容,如果不存在则创建)"a":......