🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
5 messages
5 total messages Started by Tom Mon, 16 Feb 2004 12:49
C++ beginnersvraagje (opruimen invoerbuffer vs. ISO C++)
#3128
Author: Tom
Date: Mon, 16 Feb 2004 12:49
51 lines
2224 bytes
Hey ho,

In mijn eeuwige eigenheid van beginner ontmoet ik 't volgende
probleempje, nog voor ik echt aan de opdracht begonnen ben. Ons
is geleerd dat je bij het inlezen van een string altijd nadien de
invoerbuffer moet opkuisen met iets als

char x;
do
{
  cin.get(x);
}
while (x != "\n");

Ik heb dat dan ook altijd zo gedaan, maar toen ik zonet aan een
nieuw opdrachtje begon, kwam ik bij het compileren dit tegen:

functies.cpp: In function `void readString(char*, int)':
functies.cpp:15: error: ISO C++ forbids comparison between pointer
and integer

'k Snap het dus niet. :-/ 't Gaat om deze code:

5   void readString(char* ptr, const int size)
6   {
7      cin.get(ptr, size);
9
10     char x;
11     do
12     {
13        cin.get(x);
14     }
15     while (x != "\n");
16
17  }

Hoezo comparison between pointer and integer? De enige pointer en
integer die ik in die contreien tegenkom zijn ptr en size, maar die
worden helemaal niet vergeleken. De enige comparison is de (x != "\n")
in het stukje dat de buffer proper moet achterlaten -- wat begrijp ik
verkeerd?

Beetje verward,
groetjes,
Tom

-- 
"Mongolian drivers do not care much about pedestrians."
--
np: John Foxx - He's a Liquid (mp3)
    
Re: C++ beginnersvraagje (opruimen invoerbuffer vs. ISO C++)
#3129
Author: Me...
Date: Mon, 16 Feb 2004 12:55
60 lines
2694 bytes
"Tom" <tom @ abwaerts . be> schreef in bericht
news:3569702.53VcGO01Ky@zukunft.mine.nu...
> Hey ho,
>
> In mijn eeuwige eigenheid van beginner ontmoet ik 't volgende
> probleempje, nog voor ik echt aan de opdracht begonnen ben. Ons
> is geleerd dat je bij het inlezen van een string altijd nadien de
> invoerbuffer moet opkuisen met iets als
>
> char x;
> do
> {
>   cin.get(x);
> }
> while (x != "\n");
>
> Ik heb dat dan ook altijd zo gedaan, maar toen ik zonet aan een
> nieuw opdrachtje begon, kwam ik bij het compileren dit tegen:
>
> functies.cpp: In function `void readString(char*, int)':
> functies.cpp:15: error: ISO C++ forbids comparison between pointer
> and integer
>
> 'k Snap het dus niet. :-/ 't Gaat om deze code:
>
> 5   void readString(char* ptr, const int size)
> 6   {
> 7      cin.get(ptr, size);
> 9
> 10     char x;
> 11     do
> 12     {
> 13        cin.get(x);
> 14     }
> 15     while (x != "\n");

while ( x != '\n' )

"\n" is een ptr to char
x is een char

> 16
> 17  }
>
> Hoezo comparison between pointer and integer? De enige pointer en
> integer die ik in die contreien tegenkom zijn ptr en size, maar die
> worden helemaal niet vergeleken. De enige comparison is de (x != "\n")
> in het stukje dat de buffer proper moet achterlaten -- wat begrijp ik
> verkeerd?
>
> Beetje verward,
> groetjes,
> Tom
>
> -- 
> "Mongolian drivers do not care much about pedestrians."
> --
> np: John Foxx - He's a Liquid (mp3)
>
Re: C++ beginnersvraagje (opruimen invoerbuffer vs. ISO C++)
#3130
Author: Tom
Date: Mon, 16 Feb 2004 13:01
27 lines
1633 bytes
[Monday 16 February 2004 13:55] Me... in be.comp.programming:

>> 10     char x;
>> 11     do
>> 12     {
>> 13        cin.get(x);
>> 14     }
>> 15     while (x != "\n");
> 
> while ( x != '\n' )
> 
> "\n" is een ptr to char
> x is een char

Hm. Zo werkt het inderdaad. Al snap ik nog steeds niet waarom... :-) Ik
bedoel, "\n" is een ptr to char -- ik neem het graag van je aan, maar
dan is er toch nog steeds een (poging tot) vergelijking tussen een
pointer en een char en niet tussen een pointer en een integer?

Soit. Alleszins bedankt!
Tom

-- 
"Mongolian drivers do not care much about pedestrians."
--
np: Pan Sonic - Vaihtovirta (mp3)
    
Re: C++ beginnersvraagje (opruimen invoerbuffer vs. ISO C++)
#2986
Author: Me...
Date: Mon, 16 Feb 2004 13:25
31 lines
2055 bytes
"Tom" <tom @ abwaerts . be> schreef in bericht
news:11118286.0JFnkDPSpp@zukunft.mine.nu...
> [Monday 16 February 2004 13:55] Me... in be.comp.programming:
>
> >> 10     char x;
> >> 11     do
> >> 12     {
> >> 13        cin.get(x);
> >> 14     }
> >> 15     while (x != "\n");
> >
> > while ( x != '\n' )
> >
> > "\n" is een ptr to char
> > x is een char
>
> Hm. Zo werkt het inderdaad. Al snap ik nog steeds niet waarom... :-) Ik
> bedoel, "\n" is een ptr to char -- ik neem het graag van je aan, maar
> dan is er toch nog steeds een (poging tot) vergelijking tussen een
> pointer en een char en niet tussen een pointer en een integer?
die char evalueert naar een (short)int (zie 2.7 type conversions)
>
> Soit. Alleszins bedankt!
> Tom
>
> -- 
> "Mongolian drivers do not care much about pedestrians."
> --
> np: Pan Sonic - Vaihtovirta (mp3)
>
Re: C++ beginnersvraagje (opruimen invoerbuffer vs. ISO C++)
#2988
Author: Tom
Date: Mon, 16 Feb 2004 13:44
31 lines
1885 bytes
[Monday 16 February 2004 14:25] Me... in be.comp.programming:

>> >> 10     char x;
>> >> 11     do
>> >> 12     {
>> >> 13        cin.get(x);
>> >> 14     }
>> >> 15     while (x != "\n");
>> >
>> > while ( x != '\n' )
>> >
>> > "\n" is een ptr to char
>> > x is een char
>>
>> Hm. Zo werkt het inderdaad. Al snap ik nog steeds niet waarom... :-)
>> Ik bedoel, "\n" is een ptr to char -- ik neem het graag van je aan,
>> maar dan is er toch nog steeds een (poging tot) vergelijking tussen
>> een pointer en een char en niet tussen een pointer en een integer?
>
> die char evalueert naar een (short)int (zie 2.7 type conversions)

I see. Nogmaals bedankt. :-)

Groetjes,
Tom

-- 
"Mongolian drivers do not care much about pedestrians."
--
np: Haus Arafna - Son of Cain (flac)
    
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads