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

Mil*_*yne 3 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.
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*nan 5

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

文档Read:

读取读取所有字符,但不包括下一行结束标记或直到Eof(F)变为真; 阅读后它不会跳到下一行.

在第一次Read之后,每个后续Read都会看到行结束标记并返回零长度字符串.

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