C语言如何用fopen()读取一个文仵夹中的文件J

C语言如何用fopen()读取一个文仵夹中的文件J,第1张

如果你的文件myfile存储在 d:\hhh 文件夹里面

则需要定义一个文件类型指针,如果想以文本方式读取,就以只读的方式 "r" 打开一个文本文件

如果想以只读的方式打开一个二进制的文件,就以方式"rb"打开。例如下面:

FILE fp;

fp = fopen("d:\\hhh\\myfile","r");

然 后读取就可以了

用C语言的风格:FILE fp = fopen("","");

fseek(SEEK_END);//跳到文件尾

int lenth = ftell(fp);//获得文件内部指针位置

lenth就是当前文件大小,如果lenth == -1,则文件为空

主要看你是怎么用,如果仅是读出来,再写到另外一个文件中去,速度不会太慢。

给个演示地址你看看:

>

程序我运行过了,可以找到fopen()函数。你看看是不是你的头文件的路径设置有问题。

另外程序中还有一些问题,

#include <stdioh>

main()

{

int c,i,j;

int a[100];

int p;

FILE fp;

fp=fopen("c:\\abctxt," "w"); /逗号应该写在引号外面/

if(fp!=NULL)

{

for (i=0;i<=100;i++)

fprintf(fp,"%d\t",i);

}

fclose(fp);

return 0;

/下面的语句都是不可能执行到的语句,估计你粘贴的时候漏掉了什么东西,看看下面的语句是不是是属于另外一个函数的/

fp=fopen("c : \\abctxt;" "r"); /引号里的分号改成逗号,且要放在引号外面/

j=0;

while(1)

{

c=getc(fp);

c=a[j++];

}

p=&a[0];

for (j=1;j<100;j++)

if( p>a[j] )

contiune;

else

{

p=&a[j];

}

printf("max=%d",p);

return 0;

}

现在大多数的系统采用分页机制,在打开文件成功后,文件并没有加载进入内存,而是内核生成了一个文件描述符,文件描述符含有一个指向文件indoe结构的指针,在这个结构中存有文件真正的节点信息和位置。当读取的时候,cpu首先判定需要读取的位置是否在内存上,如果再则直接读取(没有所谓的按行读取一说,按行读取不过是找文件中的换行标而已,当读到换行符的时候返回结果),如果不在内存上,则通过内存管理器进行加载,实际上,无论你是读取一个字符还是一行,加载的大小是固定的,比如系统机制是加载1M,当你文件大于1M时也只加载1M,当不够时全部加载。对不不同系统方式不同。(当然系统如果对读文件有特殊的优化也不同),当你读取之后,文件是继续留在内存还是释放,这里有另一套极其复杂的机制在管理。因为在你读第一行和第二行的时间里,还有许多事情在并发的执行。

以上就是关于C语言如何用fopen()读取一个文仵夹中的文件J全部的内容,包括:C语言如何用fopen()读取一个文仵夹中的文件J、C++中怎样获取一个文件的大小,怎样判断一个文件是否为空(文件存在,但是没有内容)、在php中读取大文件,如何提高效率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10212237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存