Почему этот код не работает в Паскале? - PullRequest
1 голос
/ 04 октября 2010

У меня есть эта переменная:

var
 UserInput : array [1..3] of string;

Я пытаюсь установить несколько значений одновременно.

readln( UserInput[1], UserInput[2], UserInput[3] );

Когда код выполняется, все входные данные сохраняются в UserInput[1]

Ex.:
Input: 10 1.5 18

Result:
UserInput[1] = 10 1.5 18
UserInput[2] = 0
UserInput[3] = 0

Что мне делать?

Ответы [ 2 ]

4 голосов
/ 04 октября 2010

определить как float или int, а не как строку:

Var
    myVar   : Integer;
    myArray : Array[1..5] of Integer;

Begin
 myArray[2] := 25;
 myVar := myArray[2];
End.
3 голосов
/ 04 октября 2010

readln просто читает текст, он не знает, что вы имели в виду "10 1.5 18" как три разные вещи.На ваш взгляд, это три числа, а для компьютера - строка из девяти символов.

Мой Паскаль очень ржавый, но если вы определите UserInput как тип float, тогдаreadln следует интерпретировать текст как число, как вы ожидаете.Или, если readln читает только строки, вам придется написать больше кода, чтобы преобразовать его в число.

...