格式化IO

方法 描述
fprintf Write formatted data to stream (function ) 向文件格式化写入
fscanf Read formatted data from stream (function ) 向文件格式化读出
sprintf Write formatted data to string (function ) 向C字符串读出
sscanf Read formatted data from string (function ) 向C字符串写入
printf Print formatted data to stdout (function ) 向标准输出给石化读出
scanf Read formatted data from stdin (function ) 向标准输入格式化写入

字符字符串IO

参数 描述
fgetc(函数实现) Get character from stream (function ),getc(宏实现)
fputc(函数实现) Write character to stream (function ) putc(宏实现)
fgets Get string from stream (function )
fputs Write string to stream (function )
getchar Get character from stdin (function )
putchar Write character to stdout (function )
gets Get string from stdin (function )
puts Write string to stdout (function )

直接IO(二进制IO)

  1. 二进制读写,在读文件的时候加b
方法 描述
fread Read block of data from stream (function )
fwrite Write block of data to stream (function )

fread

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ) Read block of data from stream

  1. fread()──从fp所指向文件的当前位置开始,一次读入size个字节,重复count次,并将读入的数据存放到从buffer开始的内存中;
  2. 读写的是数据块,既size_t size
    参数|描述
    –|--
    ptr|block of memory with a size of at least (sizecount) bytes,converted to a void
    size|Size, in bytes, of each element to be read.
    count|Number of elements, each one with a size of size bytes.
    stream|Pointer to a FILE object
返回 描述
成功 返回count
#pragma warning(disable:4996)#include<stdio.h>
#include<stdlib.h>int main()
{FILE *fp = fopen("test.txt", "r");char arr[5] = { 0,0,0,0,0 }; //一定要初始化数组,不然会很'烫'(声明数组时,内存空间可能被其他程序修改过)fread(arr, 2, 2, fp);printf("%s\n",arr);fclose(fp);system("pause");return(0);
}

fwrite

和fread对应

int 类型读写

#pragma warning(disable:4996)#include <stdio.h>
#include <stdlib.h>
int main()
{FILE * pFile = fopen("test.txt", "wb+");int wbuffer[] = { 1 };fwrite(wbuffer, sizeof(int), 1, pFile);rewind(pFile);// 此时文件position已经在1字节后int rbuffer[] = { 0 };fread(rbuffer, sizeof(int), 1, pFile);printf("%d\n", rbuffer[0]);system("pause");fclose(pFile);return 0;
}

结构体读写

#pragma warning(disable:4996)#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {int age;char name[10];
}person;int main()
{FILE * pFile = fopen("test.txt", "wb+");person wper;wper.age = 10;strcpy(wper.name, "wang");// 字符串数组fwrite(&wper, sizeof(person), 1, pFile);rewind(pFile);// 此时文件position已经在1字节后person rper;fread(&rper, sizeof(person), 1, pFile);printf("%d %s\n", rper.age, rper.name);system("pause");
}

参考:
http://www.cplusplus.com/reference/cstdio/
http://www.gnu.org/software/libc/manual/html_node/I_002fO-on-Streams.html#I_002fO-on-Streams

C语言 FileStreaming fwritefread相关推荐

  1. C语言 FileStreaming(文件流)

    基础 stdio.h POSIX 国际组织来规定接口标准(不同的软件系统linux或win来加入这个标准) gun有具体的实现(gun就是unix系统C语言实现者) macros(库变量) 宏 描述 ...

  2. C语言 FileStreaming buffer

    setbuf void setbuf ( FILE * stream, char * buffer ); Set stream buffer 设置文件描述符的缓冲区大小 stream buffer是一 ...

  3. C语言 FileStreaming fopenfclose

    fopen FILE * fopen ( const char * filename, const char * mode ); 参数 描述 filename C字符串,文件名 mode mode 描 ...

  4. C语言 FileStreaming fseek

    方法 描述 fgetpos Get current position in stream (function ) fsetpos Set position indicator of stream (f ...

  5. C语言 FileStreaming 键盘与屏幕IO

    scanf scanf()第一个参数是一个都带有格式的控制串 .第二个参数是地址(address). 从键盘输入一切数据(数字.字母,还是空格.回车.Tab)都会放入缓冲区(队列),按回车后读取缓冲区 ...

  6. Go语言的错误异常处理机制及其应用

    一.背景 在日常编写golang程序或阅读别人的golang代码时,我们总会看到如下的一堆代码块: xx, err = func(xx) if err != nil {//do sth. to tac ...

  7. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  8. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

  9. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)

    首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...

最新文章

  1. java逆向基础,Java逆向基础之函数
  2. CentOS登录root账户
  3. 面向对象封装之无参无返,无参有返
  4. qt访问mysql驱动64_64位 Qt5.12 MySql 连接问题
  5. android之camera2获取数据
  6. oracle表update在等待,Oracle中如何更新一张大表记录
  7. 解决firefox、chrome不兼容cursor:hand 设置鼠标为手型的方法
  8. wpf listview透明但字不要透明_透明胶带放水里泡一泡,真是厉害,解决了很多家庭一大烦恼,实用...
  9. 一个Keil工程包含的内容
  10. Android 杂记 - 存货盘点用的客户端
  11. bootstrap-tagsinput 使用方法
  12. rtx服务器消息监控,rtx服务器消息监控
  13. Axue8.0基础使用篇
  14. 《IT老外在中国》第29期:这位美籍华裔兜兜转转又回到了心心念念的故乡
  15. 神经网络基本原理简明教程-0-基本函数导数公式
  16. C++的strcmp
  17. 数字图说个人信息数据泄露
  18. 致远SPM解决方案之招标管理
  19. 2008最新鼠年春节拜年短信大全
  20. Windows Server2016+SqlServer2016搭建AlwaysOn集群(一)

热门文章

  1. html之CSS设计(CSS伪类、优先级、字体属性、背景属性)
  2. 传输层端口号的范围是多少?被分为哪两部分_根据资金习性可以把资金分为哪几类?_中级会计职称考试视频...
  3. 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(2)
  4. Python使用matplotlib绘制正多边形逼近圆周
  5. 详解Python内置函数iter()用法
  6. java 加载类java_深入研究Java类加载机制
  7. C++ 面向对象程序三大特性之 多态
  8. 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
  9. python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
  10. python爬虫10万信息mysql_python爬虫:爬取易迅网价格信息,并写入Mysql数据库