您好我是新帕斯卡我有一个计划,使结果....我需要通过命令行输入在给定的变量IP1和IP2。它可以通过ParamStr这[1],但它不是作品来实现,请帮助我。提前致谢!!!!!
program main;
var
output : integer;
var
ip1 : integer;
var
ip2 : integer;
function add(input1,input2:integer) : integer;
var
result: integer;
begin
if (input1 > input2) then
result := input1
else
result := input2;
add := result;
end;
begin
ip1 := 2533;**{ command line input}**
ip2 := 555;**{ command line input}**
output := add(ip1,ip2);
writeln( ' output : ', output );
end.K
由于对方回答说,你用ParamCount
和ParamStr
访问命令行参数。
ParamCount
返回的命令行上传递的参数个数,所以你应该检查一下先来看看您是否获得了足够的信息。
ParamStr
允许你访问的每个传递的参数。 ParamStr(0)
总是给你的执行程序(包括路径)的全名。附加参数是使用在它们被传递的序次序检索,与ParamStr(1)
是第一和ParamStr(ParamCount)
是最后。使用ParamStr
接收的每个值是一个字符串值,并且因此必须被转换成适当的类型,然后才能使用它。
这里有一个工作示例(相当琐碎,并检查所有省略的错误 - 你应该,例如,使用StrToInt
如果事情是提供不会转换为整数来处理错误保护代码)。
program TestParams;
uses
SysUtils;
var
Input1, Input2, Output: Integer;
begin
if ParamCount > 1 then
begin
Input1 := StrToInt(ParamStr(1));
Input2 := StrToInt(ParamStr(2));
Output := Input1 + Input2;
WriteLn(Format('%d + %d = %d', [Input1, Input2, Output]));
end
else
begin
WriteLn('Syntax: ', ParamStr(0)); { Just to demonstrate ParamStr(0) }
WriteLn('There are two parameters required. You provided ', ParamCount);
end;
WriteLn('Press ENTER to exit...');
ReadLn;
end.
调用它不带参数(或仅一个)显示如下:
C:\Temp>TestParams
Syntax: C:\Temp\TestParams.exe
There are two parameters required. You provided 0
Press ENTER to exit...
C:\Temp>TestParams 2
Syntax: C:\Temp>TestParams.exe 2
There are two parameters required. You provided 1
Press ENTER to exit...
有两个参数显示调用它
C:\Temp\TestParams 2 2
2 + 2 = 4
Press ENTER to exit...
你需要了解一个字符串和一个整数之间的区别。
为了速滑运动员的肌肉如123
整数和字符的字符串转换1
2
3
你需要使用的功能。 strtoint
是一种这样的功能,将字符串转换为一个整数。 inttostr
是另一个,从一个整数转换为字符串。
命令行的数据经由ParamStr这(n)作为一个字符串提供。
intvar := strtoint(paramstr(n));
将字符串到整数变量intvar
的值。
而writeln
有设施,以一个整数参数转换为格式化字符串,你的方式使用它正试图输出字符串,所以你需要整数output
转换为字符串。
writeln(' output : ', inttostr(output) );
应该做的非常漂亮。
var
x : string;
pcnt : integer;
begin
writeln('Parameter count=',inttostr(paramcount));
for pcnt := 1 to paramcount do
writeln('Parameter ',pcnt, ' of ',paramcount,' = ',paramstr(pcnt));
readln(x);
end.
应显示参数列表。
事实上,这是该过程writeln
将认识到变量类型,并采取措施以适当地格式化该值作为字符串,正如傲慢地被指出的情况。
我的问题是一个字符串和一个整数之间的区别。 paramstr
返回其必须被转换为一个整数的字符串。经过帕斯卡尔超过四十年的经验,这是我认为这是更好地为初学者去通过各种方式转换的锻炼,然后在writeln
使用转换设备内置。
第一次散步,然后运行。你首先需要了解的过程中的步骤。然后你就可以开始使用快捷键 - 一旦你掌握了基本知识。