求助:txt文件末尾判断
我有一段代码,是一行一行读数据的,我想知道怎么判断读完了?
CStdioFile File;
File.Open(sFileName,CFile::modeRead); //以读模式打开一个txt
//格式的文本文件
CString FileData; //定义一个CString变量作为缓冲区
int ol=0;
DWORD o=0;
char TempStr1[12];
char TempStr2[12];
num=num+1; //读的第几行
while( File.ReadString(FileData))
{
ol++;
/*定义两个临时字符串,并初始化为 '\0 '*/
memset(TempStr1, '\0 ',12);
memset(TempStr2, '\0 ',12);
sscanf(FileData, "%s %s ",TempStr1,TempStr2);
if(ol> =num)break;
}
GetDlgItem(IDC_EDIT_CardName)-> SetWindowText(TempStr2);
GetDlgItem(IDC_EDIT_EKeyID)-> SetWindowText(TempStr1);
GetDlgItem(IDC_EDIT_CardNo)-> SetWindowText(TempStr1);
GetDlgItem(IDC_EDIT4)-> SetWindowText(TempStr1);
File.Close();
我打开的txt文件内容为:
001050010727 张三
001050010728 李四
开始的时候正常显示,假如后面只有一个回车或没有回车,那么到结束的时候,TempStr1里的内容就是"001050010728李四",TempStr2里的内容就是"李四";假如txt文件末尾有好几个回车的话,最后TempStr1,TempStr2里的内容就都是空字符串,我想达到的目的就是,不关TXT文件后面有没有回车,读完后TempStr1,TempStr2里的内容是空字符串,请问该怎么写?
[解决办法]
其实用FILE类型文件没有那么复杂的事情。
[解决办法]
FILE* fp1;
fp1 = fopen( "xx ", "rt ");
而,ReadString还要设置串的长度,被限制了。
[解决办法]
if (!FileData.IsEmpty())
sscanf(FileData, "%s %s ",TempStr1,TempStr2);