文档章节

使用fseek()函数随机访问文件

努力喵
 努力喵
发布于 2015/10/20 23:29
字数 244
阅读 5
收藏 0
点赞 0
评论 0
// randomfile.c -- 使用fseek()函数随机访问文件
#include <stdio.h>
#include <stdlib.h>
#define MAX 50

int main(void){
  FILE *fp;
  int data, count, array[MAX];
  long offset;
  
  // 为数组各元素赋值
  for(count = 0; count < MAX; count++)
    array[count] = count * 10;
  
  // 以写入模式打开二进制文件
  if((fp = fopen("RANDOM.DAT", "wb")) == NULL){
    fprintf(stderr, "Error opening file.");
    exit(1);
  } 
  
  // 将数组写入文件,然后关闭文件
   if((fwrite(array, sizeof(int), MAX, fp)) != MAX){
     fprintf(stderr, "Error writing data to file.");
     exit(1);
   }
   fclose(fp);
   
   // 以二进制模式打开文件
   if((fp = fopen("RANDOM.DAT", "rb")) == NULL){
     fprintf(stderr, "Error opening file.");
     exit(1);
   }
   
   /*询问用户希望读取哪一个元素。
     输入该元素并显示它,用户输入-1时退出程序*/
    while(1){
      printf("\nEnter element to read, 0-%d, -1 to quit: ", MAX-1);
      scanf("%ld", &offset);
      
      if(offset < 0)
        break;
      else if(offset > MAX-1)
        continue;
      
      //将位置指示符移至制定元素
      if((fseek(fp, (offset * sizeof(int)), SEEK_SET)) != 0){
        fprintf(stderr, "Error using fseek().");
        exit(1);
      }
      fread(&data, sizeof(int), 1, fp);
      printf("\nElement %ld has value %d.", offset, data);
  }
  fclose(fp);
  return 0;
}


© 著作权归作者所有

共有 人打赏支持
努力喵
粉丝 5
博文 105
码字总数 34117
作品 0
广州
CStdioFile::Seek

重新定位在以前打开的文件的指针。 LONGLONG lOff,UINT nFrom); 参数 lOff 将指针的字节数。 nFrom 指针移到模式。 必须为下列值之一: CFile::begin:转到文件指针 lOff 字节从最初文件。 CF...

barsoom
2013/01/31
0
0
Python读取文件最末N行,实现Linux的tail命令功能

原文地址:http://shajunxing.tpddns.cn:8888/web/blog/2018-04-17-Python读取文件最末N行,实现Linux的tail命令功能/index.html 思路 主要使用fseek()函数的随机读写能力,从文件末尾按子节...

shajunxing
04/17
0
0
为什么说很多NoSQL的Benchmark是扯淡?

正如原作者所言,本文有标题党之嫌,但确实道出了一个众所周知的问题。就是很多NoSQL产品的官方 benchmark 过高。虽然本人并不完全同意作者的观点,但是其不盲从轻信较劲的态度还是值得学习。...

红薯
2011/09/19
1K
13
转载-C语言FILE类型与标准I/O流

<cstdio> (stdio.h) - C++ Reference http://www.cplusplus.com/reference/cstdio/ 标准IO以及文件IO。 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文...

zray4u
2016/07/15
29
0
mysql联合索引 sql索引使用

注意:Index(Name,Age)表示在Name,Age两列上建立联合索引 由于索引对数据库的查询性能有着至关重要的影响,下面是我的一些总结和体会: 一个查询一次只能使用一个索引:select name fro...

五大三粗
2015/04/30
0
0
php读取操作大文件,超出内存大小,三种方法

在php中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、filegetcontents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的文件是一个比较大的文件...

杨太化
2015/10/13
30
0
lseek()函数与fseek()函数详解

C语言lseek()函数:移动文件的读写位置 头文件: #include #include 定义函数: offt lseek(int fildes, offt offset, int whence); 函数说明: 每一个已打开的文件都有一个读写位置, 当打开...

月moon
2017/03/20
0
0
C语言文件操作(四)

实例四:随机读写。在C:\TEST.TXT 文件中创建如下字符串:我爱你,中国 使用随机读写,输出"中国"两个字,以为中文字符占两个字节,所以要从文件首部向后偏移7个字节,逗号是英文字符,占用一个...

milanlover_xa
2014/05/14
0
0
深入C语言把文件读入字符串

1.纯C实现 nt fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。 如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函...

shenhuan1104
2017/10/26
0
0
PHP如何快速读取大文件

PHP如何快速读取大文件 在PHP中,对于文件的读取时,最快捷的方式莫过于使用一些诸如file、filegetcontents之类的函数,简简单单的几行代码就能 很漂亮的完成我们所需要的功能。但当所操作的...

蜗牛奔跑
2016/01/14
9
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(五)- 文字排版样式和效果

CoreText进阶(五)- 文字排版样式和效果 效果 以下是三个设置了不同属性的效果图 第一个设置了文字颜色为红色,字体为16号 第二个设置了文字颜色为灰色,字体为16号,对其为居中 第三个设置...

aron1992
24分钟前
1
0
10.23 linux任务计划cron~10.27 target介绍

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是...

洗香香
34分钟前
0
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

20.20 告警系统主脚本 告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "en...

lyy549745
37分钟前
0
0
Don’t Repeat Yourself

在软件工程中,Don’t Repeat Yourself(DRY)是软件开发的原则,旨在减少重复,用抽象代替它,使用数据规范化来避免冗余。 这个原则在维基百科上是说是由Andy Hunt和Dave Thomas《The Pragmat...

woshixin
39分钟前
0
0
搭建webpack项目框架

作者:汪娇娇 时间:2018年6月4日 一、说明 随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。w...

娇娇jojojo
46分钟前
0
0
Java基础——面向对象(内部类)

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 内部类: 1.有名内部类 2.无名内部类 内部类申请...

凯哥学堂
54分钟前
0
0
HttpClient内部三个超时时间的区别

RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(config.connReqTimeout) //从连接池中获取连接的超时时间 ......

1713716445
今天
0
0
每天一个命令SCP

每天一个命令:SCP scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速...

河图再现
今天
0
0
cron/chkconfig/systemd/unit/target

linux任务计划 : cron工具 任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。 查看linux中任务计划的配置文件: /etc/crontab [root@yolks-001 ~]...

Hi_Yolks
今天
1
0
ftp攻略

Vsftpd完全攻略(一)ftp原理与vsftp安装:https://www.iyunv.com/thread-44698-1-1.html Vsftpd完全攻略(二)设置匿名用户也支持下载和上传与创建目录:https://www.iyunv.com/forum.php?mo...

寰宇01
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部