导航:首页 > 文件管理 > 怎么判断文件结束

怎么判断文件结束

发布时间:2024-10-03 14:16:12

A. CFile怎样判断是否读到文件结束了

1,先获取内容长度,在搜索\r\n得到最后一行位置,在把指针调整到那里。
2,读文件版是有个文件指针,调用权Read时文件指针制动向前移动。
3,下次再调用是是接着上次文件指针读。mile.Read(sRead,2),第二个参数指定了最多读几个字符,自己指定了读两个字符。例如,
CFile fr;
...//打开文件
char readbuf[65535];
int n;
while((n = fr.Read(readbuf, 65535)) > 0)//读文件的长度大于0,说明文件没有结束,否则已经结束了
{
//操作
}

B. 如何判断写文件结束

这个问题太好解决了,有几种方法

方法1,使用windows.h里的全局共享Mutex
如果是在windows里面可以用创建Mutex的方法
即,第一个发送进程开始时就建立一个Mutex
然后开始写文件,写完文件然后删除掉Mutex.

第二个进程一直创建一个和第一个进程相同的Mutex,由于是同名,肯定是创建失败。如果失败继续尝试并等待直到第一个进程删除Mutex,则二号进程创建成功,就可以打开文件并发送了.

方法2 更简单,加一个标志文件S,即第一个进程开始读文件读完文件后,创建一个特别的文件叫"c:\sign.txt".只要创建即可,不用写任何东西.

进程二,一直尝试打开"c:\sign.txt"由于文件不存在,则必定打开失败.直到进程一完成工作,创建了 c:\sign.txt
.进程二才能打开成功,则意味着进程二可以发送文件了.
我的例子是用C++ 标准流fstream写的.你也可以用c的
File 一样来完成

方法1代码:
进程1
#incle <windows.h>
int main()
{
HANDLE m_Mutex=CreateMutex(NULL, FALSE, "is_ok");

//写文件..... 你的代码

CloseHandle(m_Mutex);//删除Mutex is_ok;
return 0;
}

进程2
#incle<windows.h>
int main()
{
do {
HANDLE m_Mutex=CreateMutex(NULL, FALSE, "is_ok");
Sleep (5000); //每5秒检测一次
}while(GetLastError() == ERROR_ALREADY_EXISTS);
CloseHandle(m_Mutex);
//如果程序能执行到这里,代表进程一已经写完文件了
//进程二,你的代码写在这里.
return 0;
}

C. gets与scanf如何判断读取文件结束

gets与scanf判断读取文件结束
(1) void * =====NULL

(2)int =======EOF=======0
当出错或到文件末尾时:
scanf() 返回int,故与EOF匹配
gets() 返回char * ,故与NULL匹配
两个例子:
(1)
#include<stdio.h>
void main()
{
char a[20];
int i=0;

freopen("input.txt","r",stdin);
while(scanf("%s",a)!=EOF) printf("%s",a);

}
#include<stdio.h>
void main()
{
char a[20];
int i=0;

freopen("input.txt","r",stdin);
while(gets(a)!=NULL) puts(a);

}
补充:(1)关于' ' ,'\0' ,NULL ,EOF,空格(ascii码为32) 的区别 :
' '和空格 等价
'\0' 是ascii码为0的字符,即为空字符
至于 NULL和EOF要依情况而定了。
(2)
scanf()函数返回成功赋值的数据项数,出错时则返回EOF

gets()用于从标准输入流stdin读入一个整行(以'\n'或EOF)结束,写入ptr指向的字符数组,并返回这
个指针;出错或遇到文件结束时则返回NULL。行末的'\n'从流中取出,但不写入数组。gets()不检查被写
入的数组大小。
getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注
意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。

D. 怎么判断文件已经到尾了

在C语言里,如果读到了EOF就表明文件结束 。ch=fgetc(fp);
ch==EOF也是文件结尾

E. 怎么判断文件每行的终止符和末尾终止符

如果指的是文本文件,那么你先用16进制编辑程序看一下,每行结束时用的是否是0x0d 0x0a,即回车符和换行符。如果是,则这个文件用记事本打开能正确显示。
C++编程用fgets函数一次可读取一行数据;如果feof(fp)返回真值则文件结束,或者用fgets函数返回值来判断,比如fgets返回值是EOF或-1,0则表示读取失败,或到了文件结尾。(fgets返回值应当是本次读到的字符数。)

阅读全文

与怎么判断文件结束相关的资料

热点内容
ps多张pdf文件夹 浏览:2
怎样压缩文件能传到qq邮箱 浏览:923
南昌房管局网站怎么查备案 浏览:884
如何设置ipad下载密码 浏览:458
ae信号干扰教程 浏览:548
电脑之前删掉的文件怎么找 浏览:805
索尼z1刷什么系统升级 浏览:466
自创字体怎么编程序 浏览:381
成都的苹果售后服务电话号码 浏览:698
文件放笔记本哪个盘 浏览:745
starbound星球文件格式 浏览:137
javathis和super 浏览:782
iphone5左上角翘屏 浏览:863
自制音乐节奏灯教程 浏览:963
java获取jar文件路径 浏览:227
手机test文件可删除么 浏览:719
升win10卡在34 浏览:962
sfc文件 浏览:262
公牛苹果数据线2a什么意思 浏览:489
勒索蠕虫检测工具 浏览:68

友情链接