想读一个.txt文件中的字符串长度,这样写错在哪里?
HANDLE hFile1;
DWORD dwBytesRead1;
char buff1[512];
hFile1 = CreateFile(L"\\Storage Card\\Radio1.TXT",GENERIC_READ,0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile1 == INVALID_HANDLE_VALUE)
{
return 0;
}
if(ReadFile(hFile1 , buff1, 512, &dwBytesRead1, NULL))
{
if( strlen(buff1) != 0)
{
//AfxMessageBox(L"8600");
((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(1);
}
}
大家帮忙看下喔 超级谢谢!!!!
现在问题是无法读出文件的内容,上面代码就是想判断文件中的字符串长度,因为我的文件只有两种情况,1是存一个固定的字符串,2是文件中为空。所以想通过判断字符串长度来进行判断!
现在可以确定是这段的错误:
if(ReadFile(hFile1 , buff1, 512, &dwBytesRead1, NULL))
{
if( strlen(buff1) != 0)
{
//AfxMessageBox(L"8600");
((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(1);
}
}
大家有空的话帮忙看看啊
如果是Unicode问题的话,用_tcslen试试
ReadFile这个函数的参数dwBytesRead1,不就是代表实际读到内存中的字节数么!!
你判断这个值是否大于一不可以么?
if( strlen(buff1) != 0)
改成
if(dwBytesRead1>1 )
成不
是的,用if( dwBytesRead1 != 0)應該可以!
Nonzero indicates success. Zero indicates failure.
用dwBytesRead1 来判断应该可以的。
要用strlen(buff1)来判断,我想应该在开始对buff1初始化一下
ZeroMemory(buff1, sizeof(buff1));