From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,464e83ce40d49214 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-04-09 22:39:03 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!deine.net!freenix!enst!enst.fr!not-for-mail From: Christoph Grein Newsgroups: comp.lang.ada Subject: Re: Newbie question: input problem Date: Wed, 10 Apr 2002 07:37:22 +0200 (MET DST) Organization: ENST, France Sender: comp.lang.ada-admin@ada.eu.org Message-ID: Reply-To: comp.lang.ada@ada.eu.org NNTP-Posting-Host: marvin.enst.fr Mime-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-Trace: avanie.enst.fr 1018417142 13329 137.194.161.2 (10 Apr 2002 05:39:02 GMT) X-Complaints-To: usenet@enst.fr NNTP-Posting-Date: Wed, 10 Apr 2002 05:39:02 +0000 (UTC) Return-Path: Content-MD5: K9EkgpxR0xxvFiKCZdzDZQ== X-Mailer: dtmail 1.2.1 CDE Version 1.2.1 SunOS 5.6 sun4u sparc Errors-To: comp.lang.ada-admin@ada.eu.org X-BeenThere: comp.lang.ada@ada.eu.org X-Mailman-Version: 2.0.8 Precedence: bulk X-Reply-To: Christoph Grein List-Help: List-Post: List-Subscribe: , List-Id: comp.lang.ada mail<->news gateway List-Unsubscribe: , Errors-To: comp.lang.ada-admin@ada.eu.org X-BeenThere: comp.lang.ada@ada.eu.org Xref: archiver1.google.com comp.lang.ada:22296 Date: 2002-04-10T07:37:22+02:00 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