Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

EOF i windows

0 views
Skip to first unread message

Jan Kjetil Andersen

unread,
Apr 9, 1998, 3:00:00 AM4/9/98
to

Jeg har portet et lite C program fra unix til windows. Programmet scanner
gjennom en fil og gjør visse oversettelser.
while ((c=getchar())!=EOF) etc.

Problemet er at den hopper ut på EOF før filen er ferdig.

Hva er problemet?

jka...@online.no


Tor-Einar Jarnbjo

unread,
Apr 9, 1998, 3:00:00 AM4/9/98
to

On 09-Apr-98 18:18:40, Jan Kjetil Andersen wrote in no.c:

>Hva er problemet?

Sannsynligvis at du åpner en binærfil som tekstfil.

Tor-Einar

--
Tor-Einar Jarnbjo
bj...@cs.tu-berlin.de
Tel: +49 30 41107080
Fax: +49 89 6661718747


Frode Vatvedt Fjeld

unread,
Apr 10, 1998, 3:00:00 AM4/10/98
to

[Jan Kjetil Andersen]

> Jeg har portet et lite C program fra unix til windows. Programmet scanner
> gjennom en fil og gjør visse oversettelser.
> while ((c=getchar())!=EOF) etc.
>
> Problemet er at den hopper ut på EOF før filen er ferdig.
>
> Hva er problemet?

Hvis c er deklarert som en char, vil en byte med verdi 255 i fila føre
til at c blir -1, som gjerne er det EOF er. c må være en int for at
det skal funke.

--
Frode Vatvedt Fjeld

Jan Kjetil Andersen

unread,
Apr 10, 1998, 3:00:00 AM4/10/98
to

Tor-Einar Jarnbjo wrote in message

>Sannsynligvis at du åpner en binærfil som tekstfil.
>

Det var det ja, takk for tipset.

Jan Kjetil

Yngvar Folling

unread,
Apr 10, 1998, 3:00:00 AM4/10/98
to

In article <445.403T16...@pobox.com>,

"Tor-Einar Jarnbjo" <Tor-Eina...@pobox.com> wrote:
> On 09-Apr-98 18:18:40, Jan Kjetil Andersen wrote in no.c:
> >Jeg har portet et lite C program fra unix til windows. Programmet scanner
> >gjennom en fil og gjør visse oversettelser.
> >while ((c=getchar())!=EOF) etc.
>
> >Problemet er at den hopper ut på EOF før filen er ferdig.
>
> >Hva er problemet?
>
> Sannsynligvis at du åpner en binærfil som tekstfil.

Tror at det er oppgitt altfor få opplysninger til at man kan trekke den
konklusjonen. Han sa ikke en gang om det dreier seg om en binærfil
eller tekstfil i utgangspunktet. Helst bør det postes et lite, men
komplett program som demonstrerer problemet.

Men en ting som jeg vil foreslå å sjekke er: Hvilken type har c? Det er
alt for vanlig å gi den typen char, men husk at getchar skal returnere
alle verdier som går i en *unsigned* (merk dette) char og i tillegg
verdien EOF. Typen char blir altså for liten, så c må være int.

Yngvar

Tor-Einar Jarnbjo

unread,
Apr 10, 1998, 3:00:00 AM4/10/98
to

On 10-Apr-98 16:10:51, Yngvar Folling wrote in no.c:

>In article <445.403T16...@pobox.com>,
>"Tor-Einar Jarnbjo" <Tor-Eina...@pobox.com> wrote:
>> On 09-Apr-98 18:18:40, Jan Kjetil Andersen wrote in no.c:
>> >Jeg har portet et lite C program fra unix til windows. Programmet scanner
>> >gjennom en fil og gjør visse oversettelser.
>> >while ((c=getchar())!=EOF) etc.
>>
>> >Problemet er at den hopper ut på EOF før filen er ferdig.
>>
>> >Hva er problemet?
>>
>> Sannsynligvis at du åpner en binærfil som tekstfil.

>Tror at det er oppgitt altfor få opplysninger til at man kan trekke den
>konklusjonen. Han sa ikke en gang om det dreier seg om en binærfil
>eller tekstfil i utgangspunktet. Helst bør det postes et lite, men
>komplett program som demonstrerer problemet.

Tja, han skrev jo at han hadde porta programmet fra Unix til Windows,
altså gikk jeg ut i fra at det virka under Unix. Den eneste relevante
forskjellen mellom Unix og Windows jeg kunne komme på, er at MS-DOS
skiller fra operativsystemet sin side mellom tekst- og binærfiler.
Unix, og vel ingen andre operativsystemer gjør dette, og det er derfor
ganske vanlig under Unix å ikke spesifisere at det er en binærfil du
vil åpne. Hadde c hatt feil type, ville sannsynligvis programmet ikke
virka under Unix heller.

Stein Rune Risa

unread,
Apr 20, 1998, 3:00:00 AM4/20/98
to

Yngvar Folling humbly writes:

| > >Hva er problemet?
| >
| > Sannsynligvis at du åpner en binærfil som tekstfil.
|
| Tror at det er oppgitt altfor få opplysninger til at man kan trekke den
| konklusjonen. Han sa ikke en gang om det dreier seg om en binærfil
| eller tekstfil i utgangspunktet. Helst bør det postes et lite, men
| komplett program som demonstrerer problemet.

Tidligere erfaringer (bitre som saadan) gjorde at en her kunne gi et
svar som med stor sannsynlighet ville loese problemet (noe det ogsaa
gjorde). Hva er problemet da?

SR
--
s-s.r...@tees.ac.uk

0 new messages