首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求指点这个while里面哪部分在变化吗?为什么可以循环输出不同的内容?该如何处理

2012-06-03 
求指点这个while里面哪部分在变化吗?为什么可以循环输出不同的内容?if (fin.is_open()){cout Here are

求指点这个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,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。

热点排行