C语言使用文件指针时遇到的位置问题
在做书上的题时发现文件指针移动中的字节并不是该变量的大小而是该变量在文本/文件上输出的字节数
代码如下:
#include <stdio.h>
#include <stdlib.h>#define N 10void Write(FILE *fp){int n;for(int i = 0; i < N; i++){int num;printf("请输入第%d个数:", i+1);scanf("%d", &num);fprintf(fp, "%d,", num);n = ftell(fp);printf("当前文件指针的位置是%d\n\n", n);}printf("文件输入完毕!\n\n");
}void Read(FILE *fp){int num, n;fseek(fp, -6, 2);num = ftell(fp);printf("读取时文件指针的位置是%d\n", num);fscanf(fp, "%d,", &n);printf("倒数第三个数的值为%d\n", n);
}int main(void){FILE *fp;if((fp = fopen("D:\\num.txt", "wb+")) == NULL){printf("fail to create the file");exit(0); }Write(fp);Read(fp);return 0;
}
这里文件指针读取时是按文本上的字节来算
所以如果写的值为"1,"在文本中就占两个字节 若是"12,"则占3个字节以此类推
所以题目设置是"个位非负整数 " 意思就是固定每次写入时只占用2字节指针位置也向后移动2个位置
所以将文件指针定位到-6就是读取倒数第三个了
文本中内容为:
测试:
C语言初学者,若有错误请指出!
C语言使用文件指针时遇到的位置问题相关推荐
- c语言file和fp未声明标识符,c语言定义文件指针时(FILE *fp)一定要写*fp吗、可以换成别的字母不...
c语言定义文件指针时(FILE *fp)一定要写*fp吗.可以换成别的字母不 关注:146 答案:4 mip版 解决时间 2021-01-29 07:27 提问者祗剩寂寞 2021-01-28 1 ...
- C语言 FILE文件指针
struct_iobuf{char*_ptr;int _cnt;char*_base;int _flag;int _file;int _charbuf;int _bufsiz;char*_tmpfna ...
- fp在c语言的作用,c语言中文件的读写、fp位置操作
#include #include int main() { FILE *file; file = fopen("./text","rb"); //获取文件长度 ...
- C语言零碎知识点之定义指针时星号靠近类型名还是变量名
我们在C语言中定义指针时,星号到底是靠近类型名还是变量名有如下几种情况,并且都能够通过编译: int * a;// 星号放在类型名和变量名之间 int* a;// 星号靠近类型名 int *a;// ...
- C语言的文件操作(文件指针、文件缓冲区、文件的打开、读写操作)
目录 1. 文件缓冲区 2. 文件指针 3. 文件的打开与关闭 4. 文件的顺序读写 4.1 fputc fgetc函数 4.2 fputs fgets函数的用法类似 4.3 fprintf和fsca ...
- C语言写文件到txt里有屯字,C语言10 文件.ppt
第十章 文件 C文件概述 文件类型指针 文件的打开与关闭 文件的读写 文件的定位 出错的检测 赂恰滔氢戳骏市蔫盒少郴害篆汤看拴掳驮泅戈呕压琐憨波褪队敛紫爸戏仅C语言10 文件C语言10 文件 10.1 ...
- 文件操作(文件指针+顺序/随机读写)
目录 一.文件 1.以文件功能分类: 2.文件名 二.文件指针 三.文件的打开和关闭 1.fopen fclose 2."r" - 读 3."w" - 写 四. ...
- 【C语言】文件操作必知必会
一.前言 程序运行时,数据是在内存中存放的,而当程序退出后,数据也将不复存在. 如果想做到数据持久化,可以把数据存放在磁盘文件,或者存放到数据库. 学会文件操作,我们就可以将数据存放在电脑的硬盘上,实 ...
- 【C语言】——文件操作
目录 1.有必要使用文件吗? 2.什么是文件? 2.1程序文件 2.2数据文件 2.3文件名 3.文件的打开和关闭 3.1文件指针 3.2文件打开和关闭的具体方法 1.fopen 2.fclose 4 ...
- C语言进阶-文件操作超详解
目录 为什么使用文件 什么是文件 分类(从文件功能的角度) 文件名 文件的打开和关闭 文件指针 fopen和fclose函数 打开方式表 文件的顺序读写 顺序读写函数表 什么是输入输出流 fgetc/ ...
最新文章
- Windows自动启动程序的十大藏身之所
- Android App 瘦身总结 第三章 代码混淆及优化
- 常见的 OOM 原因及其解决方法(OutOfMemoryError)
- 用户借助操作系统使用计算机,计算机操作系统试题_B试卷及答案(08-09)
- c++ Static理解
- ROS工作空间和程序包创建
- MOQL-复杂事件处理(CEP)
- centos配置虚拟主机
- 微信小程序商城毕业设计毕设作品(5)开题报告答辩PPT
- 【ANSYS命令流】定义单元类型与实常数
- 城市规划图例符号_城市规划图例符号
- 35岁中年程序员的焦虑和64岁谷歌老程序员的补丁
- 设计一个密码登录程序。要求: 设定用户名为lili,密码是123321。若用户名正确,密码也正确,则显示:“lili,欢迎您”
- Network(无向图割点,tarjan)
- revel MySQL_mysql – 如何在Revel Controller中访问Gorm?
- C语言输入年月日判断距今,C语言课程设计万年历打印.doc
- Python-Pillow给图片加文字
- 计算机英语构词法,【计算机专业论文】计算机专业英语的构词方法(共2969字)
- Camtasia v2021.18汉化屏幕录像软件教程分享
- 乔布斯一个人的世界(一)
热门文章
- 中芯国际公布最新人事调整(5张数据表揭开公司真实情况)
- Web 前端学习 案例三之制作网页表单
- 含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如{321,3,32},最小的数为321323...
- 请用html5标准完成以下页面布局(要求完整书写整个页面的html代码,不需要写CSS)
- server: WebGame服务端架构分析
- dtech串口驱动 linux,帝特USB转串口驱动
- java 静态方法中调用非静态方法
- Linux ipv6设置
- 看懂财务报表一资产负债表
- python列表元素提取_python提取list中的元素