Article View: be.comp.programming
Article #7996Re: [c] eigen getline vereist soms een extra enter voordat hij werkt
From: Nicolas Barbier
Date: Thu, 11 Jul 2002 15:58
Date: Thu, 11 Jul 2002 15:58
47 lines
2657 bytes
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-mailReferences:
<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