fscanf和fclose究竟是做什么的?

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:10:06
我看了百度词条~但是没看懂~~~能结合以下的程序帮我讲讲么~???
谢谢大家帮助~~~
if((fp1=fopen( Filename1,"r"))==NULL)
{
printf("cannot open this file\n");
exit(-1);
}
for(i=0;i<18*L;i++)
fscanf(fp1,"%f",&c1[i]);
fclose(fp1);

if((fp1=fopen( Filename1,"r"))==NULL) //打开文件,文件名在变量Filename1里,"r"--只读方式,fp1 -- 文件流名字fp1
{
printf("cannot open this file\n"); //打开文件操作失败打印信息
exit(-1); //并退出程序
}
for(i=0;i<18*L;i++) fscanf(fp1,"%f",&c1[i]); // 从文件流fp1,依次以"%f"(float格式) 读入18*L个 c1[i],i=0到 18*L-1,步长1
fclose(fp1); // 关闭文件流fp1,也就是关闭已打开的Filename1,释放文件操作缓冲区。

(fp1=fopen( Filename1,"r")) 打开文件,文件指针给fp1;
(fp1=fopen( Filename1,"r"))==NULL 如果是这样,有错误

for(i=0;i<18*L;i++)
fscanf(fp1,"%f",&c1[i]);
就是for(i=0;i<18*L;i++) fscanf(fp1,"%f",&c1[i]); 从fp1中读18个float到c1

fclose(fp1); 读完了 关闭文件

这个fp1,c++叫它文件流,c称之为文件指针,讲穿了没啥稀奇的:c语言默认定义了stdin、stdout两个文件指针,这两个“文件”就是键盘、屏幕,所有的scanf(xxx)其实都可以换成fscanf(stdin,xxx),所有的printf(xxx)实质都是fprintf(stdout,xxx),无非stdin,stdout由系统帮你做了fopen和fclose,fp1要你手工操作。

fscan()是从文件中读数据。
fclose()是关闭文件。

先说fclose是因为前边打开文件最后