VC文件读写函数Word文档格式.docx
- 文档编号:21961262
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:17.62KB
VC文件读写函数Word文档格式.docx
《VC文件读写函数Word文档格式.docx》由会员分享,可在线阅读,更多相关《VC文件读写函数Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
{
intnumclosed;
/*Openforread(willfailiffile"
data"
doesnotexist)*/
if((stream=fopen("
"
))==NULL)
printf("
Thefile'
data'
wasnotopened\n"
);
else
wasopened\n"
/*Openforwrite*/
if((stream2=fopen("
data2"
data2'
/*Closestream*/
if(fclose(stream))
wasnotclosed\n"
/*Allotherfilesareclosed:
*/
numclosed=_fcloseall();
Numberoffilesclosedby_fcloseall:
%u\n"
numclosed);
}
输出:
wasopened
1
2.当前文件指针位置获取函数
longftell(FILE*stream);
stream文件指针
当前文件指针的位置
FILE*stream;
longposition;
charlist[100];
ftell.c"
rb"
))!
=NULL)
{
/*Movethepointerbyreadingdata:
fread(list,sizeof(char),100,stream);
/*Getpositionafterread:
position=ftell(stream);
Positionaftertryingtoread100bytes:
%ld\n"
position);
fclose(stream);
}
100
3.文件读取函数
size_tfread(void*buffer,size_tsize,size_tcount,FILE*stream)
buffer文件读取缓冲区size读取数据的类型count读取数据的个数stream文件指针
实际读取的数据个数
例子:
FILE*fp;
char*buffer=newchar[1024];
longrealLength=fread(buffer,sizeof(char),1024,fp);
//
//处理过程
deletebuffer;
fclose(fp);
4.文件的写入函数
size_tfwrite(constvoid*buffer,size_tsize,size_tcount,FILE*stream);
buffer所要写入文件的缓冲区size写入数据的类型count写入数据的个数stream文件指针
实际写入的数据个数
FILE*stream;
charlist[30];
inti,numread,numwritten;
/*Openfileintextmode:
fread.out"
w+t"
for(i=0;
i<
25;
i++)
list[i]=(char)('
z'
-i);
/*Write25characterstostream*/
numwritten=fwrite(list,sizeof(char),25,stream);
Wrote%ditems\n"
numwritten);
Problemopeningthefile\n"
r+t"
/*Attempttoreadin25characters*/
numread=fread(list,sizeof(char),25,stream);
Numberofitemsread=%d\n"
numread);
Contentsofbuffer=%.25s\n"
list);
Filecouldnotbeopened\n"
Wrote25items
Numberofitemsread=25
Contentsofbuffer=zyxwvutsrqponmlkjihgfedcb
5.文件指针搜索函数
intfseek(FILE*stream,longoffset,intorigin)
stream文件指针offset从当前指针开始的偏移量origin文件指针当前的位置
成功返回0否则返回非零值
指针移动的时候是按字节移动的,要是成功的话文件的指针将指向当前搜索到的位置
origin可以的取值在stdio.h已经定义如下:
SEEK_CUR
当前的文件指针
SEEK_END
文件结束
SEEK_SET
文件的开始
charline[81];
intresult;
stream=fopen("
fseek.out"
if(stream==NULL)
Thefilefseek.outwasnotopened\n"
fprintf(stream,"
Thefseekbeginshere:
"
Thisisthefile'
fseek.out'
.\n"
result=fseek(stream,23L,SEEK_SET);
if(result)
Fseekfailed"
Filepointerissettomiddleoffirstline.\n"
fgets(line,80,stream);
%s"
line);
Filepointerissettomiddleoffirstline.
.
6.按固定的格式写入数据函数
intfprintf(FILE*stream,constchar*format[,argument]...)
intfwprintf(FILE*stream,constwchar_t*format[,argument]...)
stream文件指针format按照一定的格式argument可选参数列表
fprintf返回实际写入的字节数.fwprintf返回实际写入的wchar_t的字节数
process.h>
int
i=10;
doublefp=1.5;
char
s[]="
thisisastring"
;
c='
\n'
fprintf.out"
%s%c"
s,c);
%d\n"
i);
%f\n"
fp);
system("
typefprintf.out"
thisisastring
10
1.500000
7.按固定的格式读入数据函数
intfscanf(FILE*stream,constchar*format[,argument]...)
intfwscanf(FILE*stream,constwchar_t*format[,argument]...)
fscanf返回实际读入的字节数.fwscanf返回实际读入的wchar_t的字节数
如果返回值为0则说明没有被赋值
如果有文件结束或是异常的IO错误时返回EOF(宏定义)
longl;
floatfp;
chars[81];
charc;
fscanf.out"
Thefilefscanf.outwasnotopened\n"
%s%ld%f%c"
a-string"
65000,3.14159,'
x'
/*Setpointertobeginningoffile:
fseek(stream,0L,SEEK_SET);
/*Readdatabackfromfile:
fscanf(stream,"
s);
%ld"
&
l);
%f"
fp);
%c"
c);
/*Outputdataread:
%s\n"
%ld\n"
l);
%c\n"
c);
a-string
65000
3.141590
X
8.文件指针的定位和获取
intfsetpos(FILE*stream,constfpos_t*pos);
intfgetpos(FILE*stream,constfpos_t*pos);
stream目标文件指针pos文件指针的位置
设置指针位置成功的话fsetpos返回0否则返回一个非零的数
获得指针位置成功的话fgetpos返回0否则返回一个非零的数
FILE
*stream;
fpos_tpos;
buffer[20];
fgetpos.c"
Troubleopeningfile\n"
/*Readsomedataandthenchecktheposition.*/
fread(buffer,sizeof(char),10,stream);
if(fgetpos(stream,&
pos)!
=0)
fgetposerror"
10bytesatbyte%I64d:
%.10s\n"
pos,buffer);
/*Setanewpositionandreadmoredata*/
pos=140;
if(fsetpos(stream,&
fsetposerror"
10bytesatbyte10:
.C:
Thisp
10bytesatbyte140:
.Candthe
9.文件指针重新定位到开始
voidrewind(FILE*stream)
无
执行完本函数后,文件的指针将返回到开始位置
intdata1,data2;
data1=1;
data2=-37;
rewind.out"
%d%d"
data1,data2);
Thevalueswrittenare:
%dand%d\n"
rewind(stream);
data1,&
data2);
Thevaluesreadare:
1and-37
10.取得文件指针所指的行
char*fgets(char*string,intn,FILE*stream);
intfputs(constchar*string,FILE*stream);
fgets的string保存到的字符串缓冲,而fputs的string表示要写入的字符串
n表示从文件中读出的字符串不超过n-1个字符,在读入的最后一个字符后加上串结束标志'
\0'
成功的话返回字符数组的首地址否则返回NULL
charline[100];
fgets.c"
if(fgets(line,100,stream)==NULL)
fgetserror\n"
line);
fputs("
Helloworldfromfputs.\n"
stdout);
Thisprogramusesfgetstodisplay
Helloworldfromfputs.
11.关闭文件函数
int_fcloseall(void)
intfclose(FILE*stream)
stream文件指针
fclose成功关闭返回0否则返回EOF表示错误
_fcloseall成功返回总共关闭的文件数否则的话返回EOF表示错误
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 文件 读写 函数
