读文件到缓冲区,缓冲区遇到的奇怪问题
zxwl 2006-05-18 10:16:02 //程序片断如下
//BUFF_SIZE是预定义好的1024*8(8k),文件很大
//缓冲区的定义稍靠前一些,那么读出来的内容最后就会有几个字节的乱码
//而放在下面的位置声明,声明后马上使用,就不会有乱码...
//好奇怪啊,不知道大家有没有遇到过,这是什么原因那?
//char cp[BUFF_SIZE]; //在这里声明就会出乱码!!!
string last;
time_t timep;
time(&timep);
cout << "begin:" << asctime(gmtime(&timep)) << endl;
if( (fpin = fopen(in_file.c_str(), "rb")) ==NULL )
{
cout << "error open read[" << in_file << "]" << endl;
exit(0);
}
char cp[BUFF_SIZE]; //在这里声明就不会出乱码!!!
memset( cp,0x00,sizeof(cp) );
int readLen = fread(cp, 1, BUFF_SIZE, fpin);
line_counter = 0;
while(readLen == BUFF_SIZE)
{
//其他操作了......