Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 2/Input: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
112A - Input (author: Tao Yue, state: changed)
22
33Input is what comes into the program. It can be from the keyboard, the mouse, a file on disk, a scanner, a joystick, etc.
44
55We will not get into mouse input in detail, because that syntax differs from machine to machine. In addition, today's event-driven windowing operating systems usually handle mouse input for you.
66
77The basic format for reading in data is:
88
99``` pascal
1010read (Variable_List);
1111```
1212
1313`Variable_List` is a series of variable identifiers separated by commas.
1414
1515`read` treats input as a stream of characters, with lines separated by a special end-of-line character. `readln`, on the other hand, will skip to the next line after reading a value, by automatically moving past the next end-of-line character:
1616
1717``` pascal
1818readln (Variable_List);
1919```
2020
2121Suppose you had this input from the user, and `a, b, c,` and `d` were all integers.
2222
23-```
23+```text
242445 64 97
25251 2 3
2626```
2727
2828Here are some sample `read` and `readln` statements, along with the values read into the appropriate variables.
2929
3030| Statement(s) | a | b | c | d |
3131|-------------------------------|-----|-----|-----|-----|
3232| read (a); read (b); | 45 | 64 | | |
3333| readln (a); read (b); | 45 | 1 | | |
3434| read (a, b, c, d); | 45 | 64 | 97 | 1 |
3535| readln (a, b); readln (c, d); | 45 | 64 | 1 | 2 |
3636
3737When reading in integers, all spaces are skipped until a numeral is found. Then all subsequent numberals are read, until a non-numeric character is reached (including, but not limited to, a space).
3838
39-```
39+```text
40408352.38
4141```
4242
4343When an integer is read from the above input, its value becomes `8352`. If, immediately afterwards, you read in a character, the value would be '`.`' since the read head stopped at the first alphanumeric character.
4444
4545Suppose you tried to read in two integers. That would not work, because when the computer looks for data to fill the second variable, it sees the '`.`' and stops since it couldn't find any data to read.
4646
4747With real values, the computer also skips spaces and then reads as much as can be read. However, many Pascal compilers place one additional restriction: a real that has no whole part must begin with `0.` So `.678` is invalid, and the computer can't read in a real, but `0.678` is fine.
4848
4949Make sure that all identifiers in the argument list refer to variables! Constants cannot be assigned a value, and neither can literal values.
5050
5151---
5252*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 2/Input", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history