读书人

txt文件末尾判断

发布时间: 2012-01-11 22:28:46 作者: rapoo

求助: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);

读书人网 >VC/MFC

热点推荐