🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #7987

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

#7987
From: Luc Kumps
Date: Thu, 11 Jul 2002 09:22
47 lines
2391 bytes
"Sven Vermeulen" <svenPUNTJEvermeulen@rug.ac.be> wrote in message
news:5LbX8.2783$QS3.541@afrodite.telenet-ops.be...
> Ieps,
>
> Ik heb een getline-functie gemaakt die als volgt werkt (overgenomen van
> verschillende websites):
>
>
> 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;
>
> }

1. 's' wordt niet getermineerd met een 0. Is dat geen vergetelheid?
2. de oproeper wordt niet op de hoogte gebracht van een EOF conditie!
3.  misschien kun je beter gebruik maken van

  if (NULL==fgets(s,lim,stdin)) {
    // EOF processing???
    // return empty string
    s[0] = 0;
  }
  else {
    // Bij fgets moet je wel zelf het newline character weer uit de buffer
halen, bv met
    if (strlen(s)>0)
      s[strlen(s)-1] = 0;
  }

> getline(person.name, 30);
Misschien zou je beter

  getline(person.name, sizeof(person.name));

gebruiken. Als dan later de grootte van de buffer wordt veranderd, dan moet
je dat niet op twee plaatsen gaan aanpassen...


Luc
Technical Details
Message-ID: <f7cX8.2831$QS3.568@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-01!sn-xit-08!supernews.com!feed.textport.net!news-out.newsfeeds.com!propagator2-maxim!propagator-maxim!news-in.spamkiller.net!news.mailgate.org!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!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 02:28:00 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-01!sn-xit-08!supernews.com!feed.textport.net!news-out.newsfeeds.com!propagator2-maxim!propagator-maxim!news-in.spamkiller.net!news.mailgate.org!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: "Luc Kumps" <NOkumpsSPAM@pandora.be>
Newsgroups: be.comp.programming
References: <5LbX8.2783$QS3.541@afrodite.telenet-ops.be>
Subject: Re: [c] eigen getline vereist soms een extra enter voordat hij werkt
Lines: 50
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Message-ID: <f7cX8.2831$QS3.568@afrodite.telenet-ops.be>
Date: Thu, 11 Jul 2002 09:22:19 GMT
NNTP-Posting-Host: 213.118.65.60
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1026379339 213.118.65.60 (Thu, 11 Jul 2002 11:22:19 MET DST)
NNTP-Posting-Date: Thu, 11 Jul 2002 11:22:19 MET DST
Organization: Telenet Internet