在Delphi 7中编写新代码:无法读取()多个字符串

时间:2015-10-15 21:42:38

标签: delphi delphi-7

我最近开始使用Delphi 7进行编码,主要用于学校,也用于个人娱乐。我遇到了一个我无法解决的问题。我想创建一个控制台应用程序,要求您输入几个字符串,例如您的姓名和类似字符串,以便应用程序稍后可以通过您的名字给您打电话。但是,我很快意识到有两个“读();” 2个不同字符串的命令由于某种原因不起作用,每次都跳过第二个字符串的read命令。由于我无法完美地解释它,这里是我能想到的最简单的代码,它显示了问题:

program stringproblem;

{$APPTYPE CONSOLE}

uses
  SysUtils;

  var string1,string2:string;

begin
read(string1);
read(string2);
writeln(string1,string2);
readln;
readln;
end.

所以控制台打开,我得写了string1的值,我输入'test',但是不是让我输入string2的值,而是跳过那个,然后写出'test'在控制台中。

为什么我不能在应用程序中输入两个字符串的值?为什么写第一个的值会自动跳过所有其他值?

1 个答案:

答案 0 :(得分:5)

而不是Read(string1),您应该使用Readln(string1)。同样,对于另一个读取,实际上每当你想要消耗整行时。

来自Read的{​​{3}}:

  

读取读取所有字符,但不包括下一个字符   行尾标记或直到Eof(F)变为真;它没有跳过   读完后的下一行。

     

在第一次读取之后,每次后续读取都会看到行尾标记   并返回零长度字符串。

     

使用多个Readln调用来读取连续的字符串值。