INPUT is a statement that takes one or more values from the user when the program is run.
|Availability||Present in all original versions of BBC BASIC.|
|Syntax||BASIC I|| |
|BASIC II-V|| |
|Token (hex)||BASIC I-V|| |
|Description||BASIC I-V||Prints one or more prompts and waits for the user to type a string and press RETURN after each prompt, then parses the typed string and stores the parsed values in the named variables in sequence.|
|Associated keywords|| |
INPUT allows a BASIC program to collect numbers or strings from
the user at run time. It does this by waiting for the user to type one or
more lines of text and press the RETURN key after each one. BASIC then
stores values extracted from the line or lines in a list of variables named
by the program.
INPUT waits for the user to type a line, it prints a
prompt. By default the prompt is a question mark
?, but the
program can substitute a more descriptive reminder of what the user should
enter next. The program can format the prompt as well (using a syntax
More than one variable can be input in one
INPUT statement. The
user can press RETURN between each one, or run them together with commas
between them. However it is considered better programming style to prompt,
input (and validate) the user's values one by one.
INPUT sequence is read from left to right. A <string-const>
is printed without a following line feed. The
' element causes
a line feed,
SPC prints a number of spaces, and
TAB repositions the cursor as it does in
, have no positioning effect (and do not
'skip' items in the input line) but they generate the default prompt if they
are the last element before a variable. The
need not include any punctuation even if multiple variables are collected.
The user's input is read from the OSRDCH input stream via the read-line
routine OSWORD &00. BASIC permits all ASCII values to be typed but the
control characters are intercepted as usual: the RETURN key
completes the line, the ESCAPE key aborts input and raises an
Escape error, CTRL U erases the current line and
DELETE erases one character. All other control characters carry
VDU commands and are not added to the line.
The maximum line length is 238 characters excluding the new line.
COUNT is updated while printing the prompts and zeroed each
the time the user presses RETURN.
LINE keyword causes
INPUT to treat
each line of input as a string literal. One line of input is taken for each
named variable. A string variable is filled with the complete line as typed,
and a numeric variable is assigned the first numeric value in the line (as
LINE, lines of input are read and parsed until all
variables are assigned values. Initial whitespace is skipped; if the first
character is then a double quote
" then the string literal is
escaped and the variable assigned as above, and any text between the closing
double quote and the next comma or end-of-line is discarded. Otherwise the
text from that character to the next comma or end-of-line is used. If there
is another variable than parsing restarts after the comma, and if there is
no comma then another line of input is read in.
Note that a custom prompt (
TAB, <string-const>) divides the list of input variables, such
that if an excess of items has been input they are discarded and not used to
fill variables on the right hand side.
>INPUT temp ?37.5 >PRINT temp 37.5 >INPUT X%,Y% ?640 ?512 >PRINT X%,Y% 640 512 >INPUT X%,Y% ?160,256 >PRINT X%,Y% 160 256 >INPUT '"X coordinate: " X%, "Y coordinate: "Y% X coordinate: 640,512 Y coordinate: 480 >PRINT X%,Y% 640 480 >INPUT A$,B$ ?"Open, sesame" doesn't work, said Aladdin. >PRINT A$,B$ Open, sesame said Aladdin. >INPUT C$,D$ ?What about "Open, sarsaparilla", suggested the genie. >PRINT C$,D$ What about "Open sarsaparilla" >INPUT LINE E$ ?"At last", he cried, "the Cave of Wonders!" >PRINT E$ "At last", he cried, "the Cave of Wonders!"
Regregex 22:42, 12 November 2012 (UTC)