-
Notifications
You must be signed in to change notification settings - Fork 0
INPUT
The INPUT statement requests a STRING or numerical keyboard entry from the user.
INPUT [;] "[Question or statement text]"{,|;} variable[, ...]
INPUT ; variable[, ...]
- A semicolon after the INPUT keyword keeps the entry on the same row after enter is pressed and prevents the screen contents from rolling up.
- The optional prompt "Question or statement text" must be a literal predefined STRING. The prompt cannot use a variable.
- Quotation marks are required except when a semicolon follows INPUT. A question mark will appear before the cursor.
- A semicolon immediately after the text statement will display a question mark with a space after it. Use a comma for input statements.
- QB64 does not return Redo from start errors like QBasic did, as user input is limited to the scope of the variable Data types used.
- Text entries (with a STRING variable]] can receive any characters, including numerical. QB64 will ignore commas in single variable text entries.
- The Data types of the variable used to store user input determines the valid numerical range for value entries in QB64, with non-numerical characters limited to D, E, &H, &O or &B.
- For example, if you use an INTEGER variable, as in
INPUT "Initial value: ", myValue%
, the valid range is -32768 to 32767. - INTEGER, LONG, and _INTEGER64 entries will ignore decimal points entered and will use all numbers.
- INPUT can be used to get more than one variable value from the user. Do so by separating input variables with commas in the code.
- The program must inform the user that more than one variable is requested, in order to enter each value separated with a comma at runtime.
- STRING and numerical variables can both be used in multiple entry requests separated by commas.
- QB64 allows comma separated entries to be skipped by the user without generating an error.
- For example, if you use an INTEGER variable, as in
- Use LINE INPUT for text input entries that may contain commas such as address or name entries.
- The user must press enter for the INPUT procedure to end.
- INPUT accepts the scientific notation letters D or E in SINGLE or DOUBLE numerical values.
- Numerical values starting with &H, &O and &B can also be entered.
- INPUT removes all leading or trailing spaces in a string value entry. QB64 does NOT remove those spaces!
- The statement halts a program until enter is pressed, which may not be desired in programs using mouse input (see INKEY$ loops).
- Use _DEST _CONSOLE before INPUT statements to receive input from a $CONSOLE window.
Using a variable in an input text message using PRINT. INPUT prompts cannot use variables.
INPUT "Enter your name: ", name$
PRINT name$ + " please enter your age: ";: INPUT "", age% 'empty string with comma
PRINT name$ + " how much do you weigh"; : INPUT weight% 'no text adds ?
Explanation: Use an empty string with a comma to eliminate the question mark that would appear without the string.
How QB64 avoids a Redo from start multiple entry error. Use commas between values.
DO
INPUT "What is your name, age, and sex(M/F)"; name$, age%, sex$
LOOP UNTIL age% 'loop until age is not 0
IF age% >= 21 THEN PRINT "You can drink beer!" ELSE PRINT "You cannot drink beer yet!"
END
What is your name, age, and sex(M/F)? Tom,24,M
You can drink beer!
Explanation: Try to enter text for the age value and it will not work. E or D should be allowed as decimal point numerical entries.
Preventing screen roll after an input entry on the bottom 2 screen rows.
SCREEN 12
COLOR 14: LOCATE 29, 2 ' place cursor at beginning of prompt line
PRINT "Enter a name to search for... "; 'print prompt on screen with input to follow
COLOR 15: INPUT ; "", name$ ' get search name from user
LOCATE 29, 2: PRINT SPC(78); ' erase previous prompt
n$ = UCASE$(name$) ' convert search name to upper case
COLOR 14' change foreground color to yellow
LOCATE 29, 2: PRINT "Searching..."; 'print message
SLEEP
Enter a name to search for... █
Explanation: The red semicolon after INPUT acts like a semicolon after a PRINT, which keeps the print cursor on the same row.