读书人

求指点这个while里面哪部分在变化吗?

发布时间: 2012-06-03 16:59:40 作者: rapoo

求指点这个while里面哪部分在变化吗?为什么可以循环输出不同的内容?
if (fin.is_open())
{
cout << "Here are the new contents of the "
<< file << " file:\n";
while (fin.read((char *) &pl, sizeof pl))
{
cout << setw(20) << pl.name << ": "
<< setprecision(0) << setw(12) << pl.population
<< setprecision(2) << setw(6) << pl.g << endl;
}
fin.close();
}

[解决办法]
read 每次读完后就会自动往后加size的字节。

定义函数 ssize_t read(int fd,void * buf ,size_t count);
函数说明 read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。

读书人网 >C++

热点推荐