C语言 FileStreaming fwritefread
格式化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)
- 二进制读写,在读文件的时候加
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
- fread()──从fp所指向文件的当前位置开始,一次读入size个字节,重复count次,并将读入的数据存放到从buffer开始的内存中;
- 读写的是数据块,既
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相关推荐
- C语言 FileStreaming(文件流)
基础 stdio.h POSIX 国际组织来规定接口标准(不同的软件系统linux或win来加入这个标准) gun有具体的实现(gun就是unix系统C语言实现者) macros(库变量) 宏 描述 ...
- C语言 FileStreaming buffer
setbuf void setbuf ( FILE * stream, char * buffer ); Set stream buffer 设置文件描述符的缓冲区大小 stream buffer是一 ...
- C语言 FileStreaming fopenfclose
fopen FILE * fopen ( const char * filename, const char * mode ); 参数 描述 filename C字符串,文件名 mode mode 描 ...
- C语言 FileStreaming fseek
方法 描述 fgetpos Get current position in stream (function ) fsetpos Set position indicator of stream (f ...
- C语言 FileStreaming 键盘与屏幕IO
scanf scanf()第一个参数是一个都带有格式的控制串 .第二个参数是地址(address). 从键盘输入一切数据(数字.字母,还是空格.回车.Tab)都会放入缓冲区(队列),按回车后读取缓冲区 ...
- Go语言的错误异常处理机制及其应用
一.背景 在日常编写golang程序或阅读别人的golang代码时,我们总会看到如下的一堆代码块: xx, err = func(xx) if err != nil {//do sth. to tac ...
- Go 知识点(19)— Go 语言中的野指针
野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...
- gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表
对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...
- OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...
最新文章
- java逆向基础,Java逆向基础之函数
- CentOS登录root账户
- 面向对象封装之无参无返,无参有返
- qt访问mysql驱动64_64位 Qt5.12 MySql 连接问题
- android之camera2获取数据
- oracle表update在等待,Oracle中如何更新一张大表记录
- 解决firefox、chrome不兼容cursor:hand 设置鼠标为手型的方法
- wpf listview透明但字不要透明_透明胶带放水里泡一泡,真是厉害,解决了很多家庭一大烦恼,实用...
- 一个Keil工程包含的内容
- Android 杂记 - 存货盘点用的客户端
- bootstrap-tagsinput 使用方法
- rtx服务器消息监控,rtx服务器消息监控
- Axue8.0基础使用篇
- 《IT老外在中国》第29期:这位美籍华裔兜兜转转又回到了心心念念的故乡
- 神经网络基本原理简明教程-0-基本函数导数公式
- C++的strcmp
- 数字图说个人信息数据泄露
- 致远SPM解决方案之招标管理
- 2008最新鼠年春节拜年短信大全
- Windows Server2016+SqlServer2016搭建AlwaysOn集群(一)
热门文章
- html之CSS设计(CSS伪类、优先级、字体属性、背景属性)
- 传输层端口号的范围是多少?被分为哪两部分_根据资金习性可以把资金分为哪几类?_中级会计职称考试视频...
- 微课|《Python编程基础与案例集锦(中学版)》第4章例题讲解(2)
- Python使用matplotlib绘制正多边形逼近圆周
- 详解Python内置函数iter()用法
- java 加载类java_深入研究Java类加载机制
- C++ 面向对象程序三大特性之 多态
- 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
- python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
- python爬虫10万信息mysql_python爬虫:爬取易迅网价格信息,并写入Mysql数据库