我写了一个项目,其中有一个类(比如说Class1)。
class Class1
attr_accessor :file_var
def initialize(input_file)
@file_var = YAML.load_file(input_file)
end
.....some member function in which I read the input_file using file_var......
end
现在我将Class2中Class1的对象作为成员
class Class2
attr_accessor :f
def initialize(input_file)
f = Class1.new(input_file)
end
.....some member function in which I am using the read items from input_file......
end
end
直到这一点它工作正常,但当我向Class2添加一个成员函数时,我使用以下3条指令从用户那里获取输入
puts "Enter the input"
$stdin.iflush #instead of this I used other flush commands also listed on Google but it didn't work.
input = gets.chomp
现在主要的问题是它没有让我停止输入,上面的命令是循环的,所以它甚至没有停止一次让我给出输入,它自动填充输入输入缓冲区。
当我显示存储在gets中的值时,令人惊讶的是它显示了从input_file读取的file_var(class1的data_accessor)的数据(我将其作为参数提供给它的构造函数)。我不知道这些数据是如何产生的。此外,我想到关闭文件缓冲区file_var,但根据此程序的要求,它是不可能的。
欢迎解决方案!!!