LINUX.ORG.RU

ifstream и eof()


0

0

вот такая ситуация
---------------------------
$ ls -l
-rwxr-xr-x 1 vinick vinick 9935 2006-10-26 01:21 test
-rw-r--r-- 1 vinick vinick  253 2006-10-26 01:21 test.cpp
-rw-r--r-- 1 vinick vinick  108 2006-10-26 00:01 test.in
$ cat test.cpp
#include <fstream>
#include <iostream>
int main(int argc,char **argv)
{
  std::ifstream istr(argv[1]);
  char c;
  int cnt=0;
  while(!istr.eof())
    {
      istr.read(&c,sizeof(char));
      cnt++;
    }
  std::cout << cnt << std::endl;
  return 0;
}
$ ./test test.in
109
-------------------
получается что eof устанавливается только после попытки чтения несуществующего байта? Это что так и должно быть?
★★

>Это что так и должно быть?

да.

fghj ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.