① 求助:c语言,怎么判断文件指针是否指向文件尾了
int feof(FILE *fp);
返回非0表示到达文件尾,返回0表示未到达文件尾
② 关于c语言文件指针打开、读写、关闭的问题
我复制了你的程序,首先for循环中int i=0;你要把i初始化,第二读文件循环没有必要,你一次读取max个字节,还需要while循环吗?
#include<stdio.h>
#include<stdlib.h>
#define MAX 200
FILE *fp;
char st[MAX];
int main(void)
{
if((fp=fopen("题库.txt","a+"))==NULL)
{
fprintf(stderr,"抱歉。打开文件失败,可能是磁盘已满\n");
exit(1);
}
fgets(st,MAX,fp);
for(int i=0;i<MAX;i++)
printf("%c",st[i]);
if(fclose(fp)==EOF)
fprintf(stderr,"因为某些原因,无法关闭文件");
return 0;
}
我修改后成这样,程序运行完成没有任何问题
③ c语言中关于文件指针的问题
做两个指针 一个记录块起始位置一个移动
④ c语言打开文件前,如何判断该文件是否已经被打开
打开文件要用FOPEN吧
FILE
*fp;
fp
=
fopen(
"Student.dat",
"wb"
);
先判断这个指针是否为NULL就行了啊~
⑤ C语言文件关闭函数fclose(文件指针)是什么
fclose函数为C语言标准库函数,用来关闭一个已打开的文件。
该函数在stdio.h中声明,原型为:
int fclose(FILE *fp);
当fclose被调用时,一个打开的文件(以文件指针fp标识)会被关闭,关闭后,无法再对fp执行读写操作。
如果关闭成功,返回0,否则返回负值。C语言文件操作的标准流程为
1、fopen打开文件;
2、通过各种读写函数,读写文件;
3、所有操作结束后,调用fclose关闭文件。
⑥ C语言文件关闭函数fclose(文件指针)疑问
假如文件是存储在硬盘上,那么所有内容是用磁化的方法写的,能掉电不丢失。
你的程序将文件打开后,将其内容的第1行读入了计算机的随机存储器中(具体就是line数组)
关闭文件后,文件仍然保持不变
line数组已经读到了数据,这些数据虽然等于文件的第1行,但已经与文件没有关系了,你使用和修改这些数据不会影响到文件,除非你再打开这个文件向里边写。
在编辑框中输出的是line数组的内容,它确实与文件的第1行内容相同!以后文件内容改了,你还要输出的话,需要再打开文件读一遍。
⑦ C语言文件指针
用强制类型转换
flag = (unsigned int)(*infile);
可以用printf("flag = %d, *infile = %d ", flag, *infile)测试。
补充:
上次匆匆忙忙看了你的问题,觉得有点奇怪,今天在VC上调了一下,不知道你的编译环境是什么,我在VC6.0上printf("\n %d",*infile); 是一个大整数,应该是一个指针值,理论上也应该如此,infile本来就是一个文件句柄。
看你的需求仿佛是想在读取文件时能知道当前读取的字节数,还是应该用ftell(FILE *)函数,如果想得到整个文件的大小,先移动到文件末尾,然后ftell(),ftell()示例如下,在VC6.0上编译调试通过:
#include <stdio.h>
void main()
{
char k;
FILE *infile;
char in_name[] = "test.txt"; //接收要打开的文件名
infile = fopen(in_name,"rb"); //假设文件能正常打开
while(!feof(infile)) //判断是否文件尾
{
printf("%d\n", ftell(infile));
k=fgetc(infile); //读入一个字符
}
}
⑧ 如何判断一个文件是否被关闭
在 C 语言的编程中,你可以通过对文件指针(fopen()、fclose()函数)、或者文件句柄(open()、close()函数)的读、写操作来判断文件是否已经关闭。
⑨ c语言打开文件前,如何判断该文件是否已经被打开
用_access函数判断,再次打开时的情况要看你第一次的打开方式了,如果上次用的是非独占打开,那没问题,如果是独占打开,会打开失败
Example
/* ACCESS.C: This example uses _access to check the
* file named "ACCESS.C" to see if it exists and if
* writing is allowed.
*/
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
/* Check for existence */
if( (_access( "ACCESS.C", 0 )) != -1 )
{
printf( "File ACCESS.C exists\n" );
/* Check for write permission */
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" );
}
}