Lazarus研究--read和readln语句的坑

本文探讨了在Lazarus中使用read和readln语句时遇到的问题。当尝试一次性读取多个整数时,需要注意以空格、TAB或回车键分隔,否则可能导致错误。然而,对于字符串,直接使用read或readln无法正确读取多个,通常只会读取到第一个字符串,其余将为空。为避免陷阱,建议在处理字符串时单独使用readln。
摘要由CSDN通过智能技术生成

Read和Readln语句能一次过读入多个变量,但对数值和字符串是不一样。

下面一次性输入三个整数

var 
	s1,s2,s3 : integer;
begin
	write('input integer s1 ,s2 ,s3 :');
	read(s1,s2,s3);
	writeln('s1=',s1,' s2=',s2,' s3=');
end;

输入时要注意,用空格、或TAB、或回车键分隔数值,只要你输入足够数量的数值,系统会正确读入3个,多了不要,但不要输入错误类型,如输入字符串,系统就会挂了。但如果你想一次性读入三个字符串,下面代码可行吗?

var 
	s1,s2,s3 : string;
	b1,b2,b3: integer;
begin
	write('input s1 s2 s3 :');
	read(s1,s2,s3);
	writeln('s1=',s1,' s2=',s2,' s3=');
end;

这样写法是永远读不到三个字符串的,无论你是用空格或TAB键分隔,永远只能读到 s1,s2和s3都是空串。要读入三个字符串,象下面这样写法也是不行的:

write('input string s1:');
read(s1);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值