From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 7 Jun 2005 20:37:36 +0700 From: php-coder To: community@altlinux.ru Message-ID: <20050607133736.GA4274@mycomp.mydomain> Mail-Followup-To: community@altlinux.ru Mime-Version: 1.0 Content-Type: text/plain; charset=cp1251 Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [Comm] [BUG] feof() =?cp1251?b?6CDk8+Hr6PDu4uDt6OUg7+7x6+Xk7eXpIPHy8O7q?= =?cp1251?q?=E8?= X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jun 2005 13:36:35 -0000 Archived-At: List-Archive: List-Post: Доброго времени суток сообщество! Вот заметил тут, что простейший примерчик на Сях работает очень странно, и даже, прямо таки скажем, неожиданно. Дело в том, что считывается лишняя строчка, т.е. последння строка файла по неведомой мне причине считывается дважды. [c0der@mycomp ~]$ cat test.c #include int main() { char str[100]; FILE *fd; fd = fopen("test.txt", "r"); while(! (feof(fd))) { fscanf(fd, "%s", str); printf("%s\n", str); } fclose(fd); return 0; } [c0der@mycomp ~]$ cat test.txt 1 2 3 [c0der@mycomp ~]$ ./test 1 2 3 3 Объясните что происходит, пожалуйста.. :-) Пока использую немного переделанную конструкцию: ... fd = fopen("test.txt", "r"); fscanf(fd, "%s", str); do { printf("%s\n", str); fscanf(fd, "%s", str); }while(! (feof(fd))); fclose(fd); ... P.S. Проверил сегодня этот пример на Visual C++ 6.0 -- все работает как и должно. Окончательно укоренился в мысли, что это бага. Если да, то на какой пакет вешать? Спасибо за внимание! -- + php-coder + php-coder[at]altlinux[dot]ru