我最近开始用Delphi 7编写代码,主要是为了上学,也是为了个人娱乐。我遇到了一个我无法解决的问题。我想要创建一个控制台应用程序,它要求您输入几个字符串,比如您的名称和类似的字符串,以便应用程序稍后可以调用您的名称。但是,我很快意识到,对于两个不同的字符串有两个" read ();“命令由于某种原因不能工作,每次都跳过第二个字符串的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‘。
为什么不能在应用程序中输入两个字符串的值?为什么写入第一个值会自动跳过所有其他值?
发布于 2015-10-15 21:43:20
而不是Read(string1),您应该使用Readln(string1)。同样地,对于另一个人来说,也就是当你想要使用一整行的时候都要阅读。
来自文档 for Read
Read将所有字符读取到但不包括下一个行尾标记,或者直到Eof(F)变为真为止;它不会在阅读后跳到下一行。 在第一次读取之后,每次后续读取都会看到行尾标记,并返回一个零长度字符串. 使用多个Readln调用读取连续字符串值。
https://stackoverflow.com/questions/33158994
复制相似问题