我想要做的是这样做,从文件中读取,在一行上输出文件的每一行,并且如果输出不匹配匹配输入,进入下一个在同一行,例如:如何用新行覆盖当前行以仅保留一行数据
文本文件:
hello
goodbye
yes
no
why
maybe
okay
tomorrow
代码:
def compare(input)
File.readlines('test.txt').each do |word|
if word == input
puts "Found a match! #{word} == #{input}"
else
loop do
puts "Comparing #{input} to #{word}" #<= Overwrite the current compared word, with the new compared word
$stdout.flush
end
end
end
end
我该如何去正确地这样做呢?我相信,我可以使用\r
然而,除去线的时候我加入\r
,这是运行它的输出:
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
我可以得到一个实例,最接近的是,如果你复制@ Sculper的答案并运行它在IRB
(1..5).each do |i|
print "test #{i}\r" # Courtesy of @Sculpur
$stdout.flush
sleep(1)
end
可以给出示例输入和预期输出吗?现在我不明白你想达到什么:) – niceman
@niceman这将是很难举一个例子,我的意思是这个我想从文件中的单词出现在最后一个字的位置该文件,例如:'比较为什么你好'你好将被替换为'再见'而不会去一个新的行。 – Donovan
欢迎来到Stack Overflow。请阅读“[问]”,包括链接的页面和“[mcve]”。我们需要一个可用的输入和期望输出的例子。它可以帮助我们帮助你,并且它可以帮助其他人了解你的问题,以及它是否符合他们看到的问题,这是什么。 “我想要做的是这样做,从文件中读取,在一行上输出文件的每一行,如果输出不匹配匹配的输入,则转到同一行上的下一行”没有多大意义。 –