Arrays 为什么这段代码在Pascal中不起作用?
我有一个变量:Arrays 为什么这段代码在Pascal中不起作用?,arrays,pascal,Arrays,Pascal,我有一个变量: 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 我应该怎么做?定义为float或i
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
我应该怎么做?定义为float或int而不是string:
Var
myVar : Integer;
myArray : Array[1..5] of Integer;
Begin
myArray[2] := 25;
myVar := myArray[2];
End.
定义为float或int而不是string:
Var
myVar : Integer;
myArray : Array[1..5] of Integer;
Begin
myArray[2] := 25;
myVar := myArray[2];
End.
readln只是阅读文本,它不知道你的意思是10 1.5 18是三个不同的东西。在人类眼中,这是三个数字,但在计算机上,这只是一个九个字符的字符串
我的Pascal非常生疏,但是如果您将UserInput定义为float类型,那么readln应该像您所期望的那样将文本解释为数字。或者,如果readln只读取字符串,则必须编写更多代码才能将其转换为数字。readln只读取文本,它不知道您的意思是10 1.5 18是三种不同的东西。在人类眼中,这是三个数字,但在计算机上,这只是一个九个字符的字符串
我的Pascal非常生疏,但是如果您将UserInput定义为float类型,那么readln应该像您所期望的那样将文本解释为数字。或者,如果readln只读取字符串,则必须编写更多代码才能将其转换为数字。我使用的是val,但此语句失败,因为UserInput[1]在此级别上不再是字符串,因此只有$I+/-和IOError可检查错误。对于更详细的错误处理,您必须将其作为字符串读取并进行自己的处理。这有多容易,取决于编译器。Delphi和FPC在这方面有很好的工具。我使用了val,但是这个语句失败了,因为UserInput[1]在这个级别上不再是字符串,因为只有$I+/-和IOError来检查错误。对于更详细的错误处理,您必须将其作为字符串读取并进行自己的处理。这有多容易,取决于编译器。德尔福和FPC在这方面有很好的设施。