GetLength()是通过判断末尾的\0来获取长度的
CString str=_T("abcd");定义里面末尾自动加\0
而char c[4]={'a','b','c','d'}; 末尾缺少\0
GetLength()不能得到正常值
CFile::GetLength
virtual DWORD GetLength( ) const;
throw( CFileException );
Return Value
该文件的长度。
Remarks
获得当前字节文件的逻辑长度,而不是数量。
Example
The following example demonstrates the use of CString::GetLength.
// example for CString::GetLengthCString s( "abcdef" );ASSERT( s.GetLength() == 6 );CString::GetLength
int GetLength( ) const;
返回值:返回字符串中的字节计数。
说明:
此成员函数用来获取这个CString对象中的字节计数。这个计数不包括结尾的空字符。
对于多字节字符集(MBCS),GetLength按每一个8位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。
示例:下面的例子说明了如何使用CString::GetLength。
// CString::GetLength示例:
CString s( "abcdef" );
ASSERT( s.GetLength() == 6 );
char c[4]={'a','b','c','d'};
改为:
char c[5]={'a','b','c','d','\0'};
就对了
原因:c语言中字符串以‘\0’结束