c/c++笔试题详解(1)

1、以下程序的功能是()

#include<stdio.h>
int main(void)
{
	FILE *fp;
	long int n;
	fp = fopen("wj.txt","rb");
	fseek(fp , 0 , SEEK_END);
	n = ftell(fp);
	fclose(fp);
	printf("%ld",n);
}
A、计算文件wj.txt内容的字节数
B、计算文件wj.txt的终止地址
C、计算文件wj.txt的起始地址
D、将文件指针定位到文件末尾

详解:

fseek()函数有3个参数:

第一个参数是一个指向被搜索文件的FILE指针,应该已经使用fopen()打开了该文件;
第二个参数成为偏移量(offset),表示从起始点开始要移动的距离,这一参数必须是long类型的值,可以为正(前移)、负(后移)、零(保持不动);
第三个参数时模式,用来标识起始点。在ANSI下,stdio.h头文件指定了下列模式常量:

文件的起始点模式
     模式  偏移量的起始点
SEEK_SET      文件开始
SEEK_CUR      当前位置
SEEK_END      文件结尾
下面是函数调用的一些例子,其中fp是一个文件指针:

fseek(fp, 0L, SEEK_SET); //找到文件的开始处
fseek(fp, 10L, SEEK_SET); //找到文件的第10个字节
fseek(fp, 2L, SEEK_CUR); //从文件的当前位置向前移动2个字节
fseek(fp, -10L, SEEK_END); //从文件结尾处退回10个字节

如果一切正常,fseek()的返回值为0,;如果有错误出现,则fseek()的返回值为-1。

ftell()函数为long类型,它返回文件的当前位置,ftell()函数通过返回距文件开始出的字节数目来确定文件的位置。文件的第一个字节到文件开输出的距离是字节0,依次类推。在ANSI C下,这种定义适用于以二进制模式打开的文件,但是对于以文本模式打开的文件来讲,不一定是这样。

如:

fseek(fp, 0L, SEEK_END);
long last = ftell(fp);			//把从文件开始到文件结尾的字节数目赋给last。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值