🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308558

Re: Dziwne zachowanie feof

#308558
From: keiichi
Date: Sat, 14 May 2016 18:49
24 lines
1889 bytes
W dniu 2016-05-14 o 16:14, Borneq pisze:
> Tłumaczyłem przykład z Pascala na C i nie działał w C. W końcu okazało
> się że to było spowodowane dziwnym działaniem feof.

Zachowanie nie jest dziwne. Te funkcje są w obu językach inaczej 
zdefiniowane. feof w C zwraca wartość różną od zera jeśli poprzednia 
operacja osiągnęła koniec pliku, ale sama nie próbuje czytać. Eof w 
Pascalu wykonuje próbę odczytu (ale nie zmienia bieżącego położenia w 
pliku) i zwraca True lub False w zależności od osiągnięcia końca pliku.

> Jeśli plik ma 100 bajtów i pozycja w pliku wynosi 100 to Pascal
> stwierdzi że jest koniec pliku, natomiast feof nie! Trzeba dopiero
> spróbować coś przeczytać i ma się nie udać.
> Jak to obejść?

Odpowiednikiem pascalowego eof powinno być coś takiego:

int ch = getc(fp);
if (ch == EOF)
	return 1;
ungetc(ch, fp);
return 0;

Pozdrawiam
Technical Details
Message-ID: <nh7rvl$ktp$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <nh7bt0$5ie$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: keiichi <keiichi100@poczta.USUNTO.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Dziwne zachowanie feof
Date: Sat, 14 May 2016 20:49:18 +0200
Organization: ATMAN - ATM S.A.
Lines: 25
Message-ID: <nh7rvl$ktp$1@node2.news.atman.pl>
References: <nh7bt0$5ie$1@node2.news.atman.pl>
NNTP-Posting-Host: staticline3273.toya.net.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1463251765 21433 217.113.238.157 (14 May 2016 18:49:25 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 14 May 2016 18:49:25 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0
In-Reply-To: <nh7bt0$5ie$1@node2.news.atman.pl>
X-Antivirus: avast! (VPS 160514-2, 2016-05-14), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit