🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #7996

Re: [c] eigen getline vereist soms een extra enter voordat hij werkt

#7996
From: Nicolas Barbier
Date: Thu, 11 Jul 2002 15:58
47 lines
2657 bytes
Sven Vermeulen wrote:
> void getline(char s[], int lim)
> {
>         int c = 0, j;
> 
>         while (getchar() != '\n');
> 
>         for (j = 0; j < lim - 1 && (c = getchar()) != EOF && c != '\n';
>         ++j)
>                 s[j] = c;
> 
> }

waarvoor die while(..); dient snap ik niet

ik zou dit veranderen door:

void getline(char *s, int lim) /* ik vind [] voor een pointer nogal vies :-) */
{
        int c, j; /* c = 0 is absoluut niet nodig als je ervan uitgaat
                dat lim minstens 2 is (dus minimum 1 karakter aan input
                toelaat, wat me logisch lijkt) */

        /* lees karakters in tot \n, EOF of limiet bereikt */
        for (j = 0; j < lim - 1 && (c = getchar()) != EOF && c != '\n'; j++)
                s[j] = c;

        /* beeindig de string met \0 */
        s[j] = '\0';

        /* lees karakters weg tot \n of EOF, indien limiet bereikt werd */
        while (c != '\n' && c != EOF)
                c = getchar();
}

eventueel kan je ook iets teruggeven zodat de aanroepende functie weet
dat EOF bereikt is (ik zou dat alleen doen als de EOF het eerste karakter
is dat je leest, anders verlies je de laatste inputregel als hij niet
afgesloten is met een \n)

(reply vertraagd omdat er vanmorgen iets mis was met de easynet
newsserver :-( )

-- 
Nicolas Barbier
PROFILE:      http://users.pandora.be/HATE/profiles/itsme/
HOW_TO_QUOTE: http://www.houghi.org/quote/    /* dutch */
Technical Details
Message-ID: <pan.2002.07.11.17.58.02.335122.791@in.group>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.esat.net!diablo.theplanet.net!easynet-monga!easynet.net!feed1.news.be.easynet.net!sisyphus.news.be.easynet.net!not-for-mail
References: <5LbX8.2783$QS3.541@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,e8f39528eabe5a61
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-07-11 09:11:55 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-01!sn-xit-08!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.esat.net!diablo.theplanet.net!easynet-monga!easynet.net!feed1.news.be.easynet.net!sisyphus.news.be.easynet.net!not-for-mail
From: Nicolas Barbier <reply@in.group>
Subject: Re: [c] eigen getline vereist soms een extra enter voordat hij werkt
Date: Thu, 11 Jul 2002 17:58:02 +0200
Newsgroups: be.comp.programming
Message-ID: <pan.2002.07.11.17.58.02.335122.791@in.group>
References: <5LbX8.2783$QS3.541@afrodite.telenet-ops.be>
User-Agent: Pan/0.11.2 (Unix)
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Comment-To: "Sven Vermeulen" <svenPUNTJEvermeulen@rug.ac.be>
Lines: 47
Organization: [ posted via Easynet Belgium ]
NNTP-Posting-Host: 213.193.182.174
X-Trace: 1026403188  30451 213.193.182.174
X-Complaints-To: abuse@be.easynet.net