
你的这个result是什么应该是个文件吧
编写这样的程序主要用到(1)fopen函数,用于打开文件,返回一个文件指针,fwrite函数,写入文件(也就是你要的result文件),及fclose函数,文件 *** 作完时要关闭文件指针(2)fseek函数,用于文件指针的定位,也就是将文件指针放到你要 *** 作的文件中的某个位置(3)然后用的就是fread函数,用于读取一块数据,你可以指定数据的长度,没有什么技术可言的,自己查一下这几个函数的原型就会明白了
用库函数fgetpos可以获得64位长度的值,举个例子:
FILE fp;
fpos_t filelen; //fpos_t是个宏,就是long long ,64位整数
fp = fopen("xxxxx","r");
fseek(fp, 0, SEEK_END); //移动文件指针到末尾
fgetpos(fp, &filelen); //把偏移量写入filelen
int fseek(FILE stream, long offset, int fromwhere):
这个函数,将文件指针stream移至以fromwhere为基准,偏移offset个字节的位置。常用的fromwhere有SEEK_SET(文件首地址,0),SEEK_CUR(文件指针当前位置, 1),SEEK_END (文件结束位置,2)。
long ftell(FILE stream):该函数返回文件指针stream相对于文件首地址的偏移字节数。
可以先利用fseek与ftell求出文件大小,再一次性进行读取。代码如下:
#include <stdioh>#include <stdlibh>
#include <stringh>
int main(void)
{
FILE fp = fopen("atxt", "r");
char str;
int len;
fseek(fp, 0, SEEK_END); //指向文件尾地址
len = ftell(fp); //计算文件长度
fseek(fp, 0, SEEK_SET); //恢复至文件指针至首地址
str = (char)malloc(len sizeof(char)); //申请文件长度的内存
if(str != NULL)
{
fread(str, len sizeof(char), 1, fp); //一次性读入
printf("%s", str);
free(str);
}
return 0;
}
使用fread函数读取指定长度的字符串,即使包含\n也会被读取,可以首先使用fseek定位到文件结尾,然后ftell函数返回的值就是文件的大小,这样就可以用循环多次读取文件,直到读取所有内容
FILE file = NULL;
char szFile[1025] = {0};
int nHadRead = 0;
file = fopen( "filetxt", "r+");
if ( file == NULL )
return;
fseek( file, 0, SEEK_END ); //定位到文件尾
int nLen = ftell( file ); //获取当前位置,即文件长度
fseek( file 0, SEEK_SET ); //重新定位到文件开头,准备开始读
while ( nHadRead < nLen )
{
int nRead = nLen - nHadRead >1024 1024 : nLen - nHadRead; //如果剩余小于1024字节,则读剩余字节,否则每次读取1024字节。
int nTmp = fread( szFile, 1, nRead , file );
nHadRead += nTmp;
printf( "%s", szFile );
memset( szFile, 0x0, sizeof(szFile) );
}
fclose(file);
大致过程就是这样,纯手打,没有调试过,可能有错
size=sizeof(char);
nitems=4;
其中sizeof(char)==1;
事实上int fread(void ptr,int size,int nitems,FILE stream);
读取字符数为sizenitems个字符
只要有sizenitems==4即可
也就是说有
size=1;
nitems=4;
或
size=2;
nitems=2;
或
size=4;
nitems=1;
以上就是关于C语言中 怎样读取一个文本文档中的特定位置的特定长度的字符全部的内容,包括:C语言中 怎样读取一个文本文档中的特定位置的特定长度的字符、C语言获取文件大小 int或long int都是32位,最大为40亿 在ntfs下文件超过4GB怎、请教C语言如何提取未知长度txt文件的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)