comp.lang.ada
 help / color / mirror / Atom feed
From: Christoph Grein <christoph.grein@eurocopter.com>
Subject: Re: Newbie question: input problem
Date: Wed, 10 Apr 2002 07:37:22 +0200 (MET DST)
Date: 2002-04-10T07:37:22+02:00	[thread overview]
Message-ID: <mailman.1018417142.1044.comp.lang.ada@ada.eu.org> (raw)

This is a pitfall virtually any newcomer falls into...

Get(Option, 1) does not consume too many characters, it consumes less than you 
think - it does not consume the EoL (the character issued when you push enter), 
in fact is consumes just one character, as specified by the second argument 1.
So an empty input line is present for Get(strName, length_In) [which I assume in 
your proper program is Get_Line, there is no such Get in Ada.Text_IO], or, if 
you happen to input more than one digit, the rest of the digits.

Just try the following:
> Please enter an option
> 32
Your name will most probably hold the value 2.

So what is missing is a Skip_Line after Get(Option, 1).

Please have a look at RM A.10.

A further hint: Use named associations for plain numbers, e.g.
Get(Option, Width => 1)
This will make you program much more readable.

> From: sidney_bhaiji@hotmail.com
> 
> Hi, 
>    I have the following problem...
> Consider the following lines of code....
> 
> Option: Integer;
> strName, strAddress: String(1..50);
> length_In, length_In2: Integer;
> 
> Put_Line("Please enter an integer according to what you want to do");
> Get(Option, 1);New_Line;
> 
> if (Option = 3) then
>    Put_Line("Please enter your name");
>    Get(strName, length_In); New_Line;
>    Put_Line("Please enter your address");
>    Get(strAddress, length_In2);
> ....
> 
> The problem is that after I put the integer in and push enter
> (in response to the first question)  the next line is outputted
> (Please enter your name) but then before I could enter the name, the
> prompt for address is outputted, the get(strName..) is completely
> skipped.  I have tried several things and can't get this to work. 
> What am I doing wrong?? I'm thinking that the problem might be with
> the get option, such that it is grabbing too many characters, b/c when
> that line is commented out and i hardcord in the option number
> everything works as it should. The problem is not w/ the New_Line
> after the Get(strName...) I have tried playing around w/ this, its
> omission makes no difference.
> 
> 
> Example of output....
> Please enter an option
> 3
> Please enter your name        --wrong! i did not get to input the
> name!!!
> Please enter your address
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada



             reply	other threads:[~2002-04-10  5:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-10  5:37 Christoph Grein [this message]
2002-04-10  7:11 ` If you intend to press return after option Petter Fryklund
  -- strict thread matches above, loose matches on Subject: below --
2002-04-10  2:13 Newbie question: input problem Sidney Bhaiji
2002-04-10  8:22 ` John McCabe
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox