char jmh[20005]={0};
while (!feof(fpSrc)) fpSrc是一个文件指针,文件大小是20K
{
memset(buff, 0, 8);
fread(buff, sizeof(char), 8, fpSrc);
memcpy(jmh, buff,8);
cout <<strlen(jmh)<< endl; 显示的结果一直为3
}
while (!feof(fpSrc)) fpSrc是一个文件指针,文件大小是20K
{
memset(buff, 0, 8);
fread(buff, sizeof(char), 8, fpSrc);
memcpy(jmh, buff,8);
cout <<strlen(jmh)<< endl; 显示的结果一直为3
}
本人想问的是为什么 strlen(jmh)的值会这样 ,循环完毕还是3
解决方案
80
strlen系列函数统计的是”\0″结尾的字符串,二进制文件数据是有可能有0的。memcpy本身就意味着可能有任意类型的数据,长度在你copy时就指定了。