目录

一、流的刷新

二、流的定位:

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(&times);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学习——流刷新定位、格式化输入和输出相关推荐

  1. C语言函数fscanf()(从流 stream 读取格式化输入)(如果成功,返回成功匹配和赋值的个数;否则返回EOF)(分隔符:space、Tab、Enter)

    C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例1 实例2 实例3 注意(分隔符:space.Tab.Enter) 换行格式化输入示例(暂时只能弄英文字符,中文 ...

  2. (03)格式化输入和输出

    一.概念简介 基础学习阶段:键盘输入,屏幕输出. 从键盘输入数据,以及实现简单的人机交互. 通过格式化的方式输出 整数.浮点数.字符.字符串,以及对数据进行对齐. 1.标准输入输出 在C语言中,有三个 ...

  3. 文件格式化输入和输出

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 在控制台操作时,使用的格式化输入和输出为scanf和printf,那么对文件的IO操作也可以使用fscanf和 ...

  4. java 文件字节流_Java:文件字符流和字节流的输入和输出

    最近在学习Java,所以就总结一篇文件字节流和字符流的输入和输出. 总的来说,IO流分类如下: 输入输出方向:     输入流(从外设读取到内存)和输出流(从内存输出到外设) 数据的操作方式: 字节流 ...

  5. C语言学习4(数据的输入与输出)

    格式化输入 //实例3-1:计算圆的周长和面积#include "stdio.h"#include "conio.h"void main(){float PI, ...

  6. python学习笔记(5)—— 输入和输出

    文章目录 输入和输出(Input and output) 格式化输出(Fancier Output Formatting) 格式化字符串文字(Formatted String Literals) St ...

  7. linux学习笔记:磁盘格式化与磁盘检验命令

    我们在磁盘分割需要对文件系统进行格式化,这时用到命令 mkfs (意思是make filesystem) 小技巧: 查看mkfs 支持的文件格式的方法: 输入命令mkfs ,然后按两下TAB键 用法: ...

  8. linux学习——硬盘分区和格式化篇

    硬盘分区和格式化篇 1.磁盘分区 1.概念:磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分.碟片一旦划分成数个分区(Pratition),不同类的目录和文件可以存 ...

  9. SAS小白入门第二节:SAS数据类型和格式化(输入和输出)

    数据类型 在其他编程语言中,有各种各样的数据类型,但是总体上,可大致分为:数值型,字符型和日期型,而SAS中的数据类型,只有2中数据类型:字符型和数值型.在这里,你会发现,日期型的去哪了?在SAS程序 ...

最新文章

  1. 青少年编程竞赛交流群周报(第042周)
  2. 家中电脑无法共享,联通域名解析劫持竟是罪魁
  3. 设计模式之访问者(visitor)模式
  4. oracle右连接失效,oracle 右连接
  5. 算法 --- [map的使用]求最大和谐子序列
  6. Fluent NHibernate之旅
  7. xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)
  8. raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
  9. php socket开发斗地主,基于状态机模型的斗地主游戏(NodeJsSocketIO)
  10. nginx fastcgi python_webpy + nginx + fastcgi 构建python应用
  11. java 运行war_javaweb项目在Eclipse中启动Tomcat后运行正常,但是打成war包启动后运行异常的问题?...
  12. php在线预览文档,php如何实现文档在线预览
  13. 全球首款光线追踪GPU
  14. 迈特斯机器人_WIE-R红外热像视频内窥镜
  15. 什么叫做GATWAY,DNS,DHCP?
  16. java集成Cplex:Cplex下载、IDEA环境搭建、docker部署
  17. CSDN-markdown编辑器使用
  18. docker 容器备份mysql shell脚本
  19. 矩阵按键值在8位数码管流动显示
  20. 第二十四讲 一阶常微分方程组

热门文章

  1. 梦回----32位CPU和64位CPU的通用寄存器
  2. FPGA学习之嵌入式硬件系统(SOPC)概述(软硬件设计)
  3. php客户投诉系统,呼叫中心在线客服系统这样处理客户投诉,满意度提升200%!...
  4. 数据库sql嵌套查询
  5. CF EDU138 D(数论) ,牛练104C(DP) ,焦作F. Honeycomb(复杂建图,BFS最短路)
  6. bios文件查看工具_更新BIOS,能让电脑飞得更高!
  7. SD卡结构、检测方式
  8. 遭索赔800万 索尼成被告
  9. Sqlite3 C++ 使用方法
  10. Python 获取视频时长(附代码) | Python工具