कंसोल I / O से अतिरिक्त वर्ण प्राप्त होते हैं - रूबी, mkdir, हो जाता है

मैं एक रूबी प्रोग्राम बनाने की कोशिश कर रहा हूं जो एक निर्देशिका बनाता है और इसे कंसोल इनपुट का उपयोग करके नाम देता है।

1 #!/usr/bin/env ruby¬
2 ¬
3 puts "HW date, format MM-DD:"¬
4 ¬
5 directory_name = "hw_" + gets¬
6 ¬
7 begin¬
8 ▸ if File::directory?(directory_name)¬
9 ▸ ▸ return¬
10 ▸ end¬
11 ▸ Dir.mkdir(directory_name)¬
12 end¬

हालाँकि जो निर्देश बनाए गए हैं, उनके अंत में कचरा पात्र हैं?

$ ./start_hw.rb
HW date, format MM-DD:
01-13
$ ls
hw_01-13?   start_hw.rb

मैं इसे कैसे रोकूँ? (यानी गैर-मुद्रण योग्य वर्ण)

उत्तर:

उत्तर № 1 के लिए 4

माणिक्य gets फ़ंक्शन पंक्ति के अंत के अक्षरों को अंत में लौटाता है, इसलिए आपको उपयोग करना चाहिए chomp उन्हें हटाने के लिए।

directory_name = "hw_" + gets.chomp
puts directory_name.inspect  # print it to make sure there is no junk

संबंधित सवाल
सबसे लोकप्रिय