Linux学习——流刷新定位、格式化输入和输出
目录
一、流的刷新
二、流的定位:
fseek 参数whence参数:SEEK_SET/SEEK_CUR/SEEK_END
注意事项:
三、格式化输出
四、格式化输入
五、 标准IO练习题
程序:
结果:
注意:
一、流的刷新
int fflush(FILE *fp);
成功时返回0;出错时返回EOF
将流缓冲区中的数据写入实际的文件
Linux下只能刷新输出缓冲区,输入缓冲区丢弃
如果输出到屏幕使用fflush(stdout)
实验程序:
#include <stdio.h>
#include <unistd.h>
int main()
{//printf("abcdef");//fflush(stdout);FILE * fp;fp = fopen("1.txt","w");fwrite("abcdefg",7,1,fp);fflush(fp);while(1){sleep(1);}
}
实验结果:
二、流的定位:
long ftell(FILE *stream);
long fseek(FILE *stream, long offset, int whence);
void rewind(FILE *stream);
fseek 参数whence参数:SEEK_SET/SEEK_CUR/SEEK_END
SEEK_SET 从距文件开头 offset 位移量为新的读写位置
SEEK_CUR:以目前的读写位置往后增加 offset 个位移量
SEEK_END:将读写位置指向文件尾后再增加 offset 个位移量
offset参数:偏移量,可正可负
注意事项:
1.文件的打开使用a模式 fseek无效
2.rewind(fp) 相当于 fseek(fp,0,SEEK_SET);
3.这三个函数只适用2G以下的文件
三、格式化输出
int fprintf(FILE *stream, const char *fmt, …);
int sprintf(char *s, const char *fmt, …);
成功时返回输出的字符个数;出错时返回EOF
四、格式化输入
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char *format, ...);
五、 标准IO练习题
time()用来获取系统时间(秒数)
time_t time(time_t *seconds) 1970.1.1 0:0:0
localtime()将系统时间转换成本地时间
struct tm *localtime(const time_t *timer)
struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月份,范围从 0 到 11 */
int tm_year; /* 自 1900 起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
程序:
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <string.h>
int main()
{int i = 0;time_t times;FILE * fp;char buf[32];struct tm* ge;fp = fopen("2.txt","a+");if(fp == NULL){perror("fopen");return 0;}while(fgets(buf,32,fp) != NULL){if(buf[strlen(buf)-1] == '\n'){i++;} }while(1){times = time(NULL);//printf("%d\n",(int)times);ge = localtime(×);printf("%2d:%4d-%2d-%2d %2d:%2d:%2d\n",i,ge->tm_year+1900,ge->tm_mon+1,ge->tm_mday,ge->tm_hour,ge->tm_min,ge->tm_sec);fprintf(fp,"%2d:%4d-%2d-%2d %2d:%2d:%2d\n",i,ge->tm_year+1900,ge->tm_mon+1,ge->tm_mday,ge->tm_hour,ge->tm_min,ge->tm_sec);i++;fflush(fp);sleep(1); }fclose(fp);
}
结果:
注意:
标准IO磁盘文件的缓冲区一般为4096
注意和标准输出的全缓冲区别,标准输出是1024
Linux学习——流刷新定位、格式化输入和输出相关推荐
- C语言函数fscanf()(从流 stream 读取格式化输入)(如果成功,返回成功匹配和赋值的个数;否则返回EOF)(分隔符:space、Tab、Enter)
C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例1 实例2 实例3 注意(分隔符:space.Tab.Enter) 换行格式化输入示例(暂时只能弄英文字符,中文 ...
- (03)格式化输入和输出
一.概念简介 基础学习阶段:键盘输入,屏幕输出. 从键盘输入数据,以及实现简单的人机交互. 通过格式化的方式输出 整数.浮点数.字符.字符串,以及对数据进行对齐. 1.标准输入输出 在C语言中,有三个 ...
- 文件格式化输入和输出
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 在控制台操作时,使用的格式化输入和输出为scanf和printf,那么对文件的IO操作也可以使用fscanf和 ...
- java 文件字节流_Java:文件字符流和字节流的输入和输出
最近在学习Java,所以就总结一篇文件字节流和字符流的输入和输出. 总的来说,IO流分类如下: 输入输出方向: 输入流(从外设读取到内存)和输出流(从内存输出到外设) 数据的操作方式: 字节流 ...
- C语言学习4(数据的输入与输出)
格式化输入 //实例3-1:计算圆的周长和面积#include "stdio.h"#include "conio.h"void main(){float PI, ...
- python学习笔记(5)—— 输入和输出
文章目录 输入和输出(Input and output) 格式化输出(Fancier Output Formatting) 格式化字符串文字(Formatted String Literals) St ...
- linux学习笔记:磁盘格式化与磁盘检验命令
我们在磁盘分割需要对文件系统进行格式化,这时用到命令 mkfs (意思是make filesystem) 小技巧: 查看mkfs 支持的文件格式的方法: 输入命令mkfs ,然后按两下TAB键 用法: ...
- linux学习——硬盘分区和格式化篇
硬盘分区和格式化篇 1.磁盘分区 1.概念:磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分.碟片一旦划分成数个分区(Pratition),不同类的目录和文件可以存 ...
- SAS小白入门第二节:SAS数据类型和格式化(输入和输出)
数据类型 在其他编程语言中,有各种各样的数据类型,但是总体上,可大致分为:数值型,字符型和日期型,而SAS中的数据类型,只有2中数据类型:字符型和数值型.在这里,你会发现,日期型的去哪了?在SAS程序 ...
最新文章
- 青少年编程竞赛交流群周报(第042周)
- 家中电脑无法共享,联通域名解析劫持竟是罪魁
- 设计模式之访问者(visitor)模式
- oracle右连接失效,oracle 右连接
- 算法 --- [map的使用]求最大和谐子序列
- Fluent NHibernate之旅
- xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)
- raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
- php socket开发斗地主,基于状态机模型的斗地主游戏(NodeJsSocketIO)
- nginx fastcgi python_webpy + nginx + fastcgi 构建python应用
- java 运行war_javaweb项目在Eclipse中启动Tomcat后运行正常,但是打成war包启动后运行异常的问题?...
- php在线预览文档,php如何实现文档在线预览
- 全球首款光线追踪GPU
- 迈特斯机器人_WIE-R红外热像视频内窥镜
- 什么叫做GATWAY,DNS,DHCP?
- java集成Cplex:Cplex下载、IDEA环境搭建、docker部署
- CSDN-markdown编辑器使用
- docker 容器备份mysql shell脚本
- 矩阵按键值在8位数码管流动显示
- 第二十四讲 一阶常微分方程组
热门文章
- 梦回----32位CPU和64位CPU的通用寄存器
- FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计)
- php客户投诉系统,呼叫中心在线客服系统这样处理客户投诉,满意度提升200%!...
- 数据库sql嵌套查询
- CF EDU138 D(数论) ,牛练104C(DP) ,焦作F. Honeycomb(复杂建图,BFS最短路)
- bios文件查看工具_更新BIOS,能让电脑飞得更高!
- SD卡结构、检测方式
- 遭索赔800万 索尼成被告
- Sqlite3 C++ 使用方法
- Python 获取视频时长(附代码) | Python工具