したいこと
引数コマンドARGV[0]を使って、get.to_i で一つ一つ入力したい
問題点
get.to_i の部分で自動で入力が行われてしまう。
inputのところの
input_filename = ARGV[0]
output_filename = ARGV[1]
をARGV[0], ARGV[1]にしてから問題が発生。
input_filename
output_filename
の2つにファイル名を直接入力すると通常どうり作動する
=begin スクリプトの説明 テレビタレントの芸歴を当てるクイズ 1. printメゾットを使用してサービスを説明する 2. 必要な変数を用意する 3. 組み込みライブラリのopen関数を使用してファイルを読み込んで正解を変数に入れる 4. gets関数を使用して問題に対する答えを入力してもらい、if文で正誤判定をする 5. すべて正解したらopen関数で出力用のファイルを開いて、人数と合計試行回数を出力ファイルに出力する =end def game # サービスの説明 print "\nこれは10人のテレビタレントの芸歴(年数)を当てるクイズです\n\n" print "やること\n" print " 1. タレントの芸歴(年数)を予想して入力する\n" print " 2. 不正解のときはヒントを手がかりに正解するまで入力する\n" print "10人すべて正解したら「コンプリート!」と表示されて、クイズの終了!\n" print "芸歴制覇を目指して頑張ってください!\n" # 必要な変数を用意 $num_ans = 0 # 正解を入れる変数 $count = 0 # 合計試行回数をカウント $times = 0 # 一人目二人目をカウント # input input_filename = ARGV[0] #←問題点。 problem4_1H140412_in.txt output_filename = ARGV[1] #←問題点 problem4_1H140412_out.txt file = open(input_filename, "r") while $num_ans = file.gets() $times = $times + 1 input_to_output() end file.close # output file = File.open(output_filename,"w") file.puts 'コンプリート!' file.puts "#{$times}人すべて正解しました。おめでとうございます!" file.puts "合計試行回数は#{$count}回でした" file.close puts 'コンプリート!' puts "#{$times}人すべて正解しました。おめでとうございます!" puts "合計試行回数は#{$count}回でした" end def input_to_output comedian = ["松本人志", "関根勤", "ジミー大西", "ピコ太郎", "出川哲朗", "ネプチューン名倉", "坂上忍", "岡村隆史", "上田晋也", "オードリー若林"] printf("%d人目 : %sの芸歴を予想して、年数で入力してください ", $times, comedian[$times-1]) print "あなたの答え => #{num_try = gets.to_i}年目\n" print "\n----------参考年表------------\n" print " 志村けん 46 年\n" print " 明石家さんま 44 年\n" print " 石橋貴明 38 年\n" print " さまーず三村 30 年\n" print " 宮迫博之 29 年\n" print " サバンナ高橋 23 年\n" if num_try > $num_ans.to_i puts "\n=================================>> 残念!もっと少ない芸歴です\n\n\n\n" $count = $count + 1 input_to_output() elsif num_try < $num_ans.to_i puts "\n=================================>> 残念!もっと長い芸歴です\n\n\n\n" $count = $count + 1 input_to_output() else puts "\n=================================>> !!!!!!!!!!大正解!!!!!!!!!!\n\n\n\n" $count = $count + 1 end end game()
理由がよくわからないので、教えていただきたいです。
よろしくお願いします。
rails は関係なさそうなのでタグを消してください

回答2件
あなたの回答
tips
プレビュー