• ベストアンサー

【Ruby初心者】簡単なプログラムが実行しない

教材でRubyを勉強中なのですが、以下のプログラムが実行されず爆死しています。 --- puts("整数を入力してね") number = gets.to_i if number > 0 then puts("正の数です!”) end --- 文字コードは、UTF-8で指定、OSはMacです。CotEditorを使用しています。 数字/アルファベットだけのプログラムは正常に実行されるのですが、 文字入りのプログラムがうまく実行されません。 プレビュー見ると文字化けしているので(添付画像参照)、 文字入力にバグが起因していると思われますがお手上げ状態です。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

ruby 2.0.0p353 で実行しましたが、質問欄をそのままコピーをすると test.rb:4: unterminated string meets end of file test.rb:4: syntax error, unexpected end-of-input, expecting ')' とエラーがでます。 puts("正の数です!”) の”が全角になっています。 puts("正の数です!") で実行してみてください。 それでも駄目でしたらruby -vでバージョンを確認してください。 1.8.7なら require 'jcode' $KCODE="u" 最初に加えてみてください。

tmyasudayo
質問者

お礼

迅速な回答ありがとうございました!!助かりました^^

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Rubyのファイルを実行できません(初心者)

    【環境】 デバイス:MacBookAir エディタ:CotEditor ***************** プログラミング初心者です。 MacにてRubyを独学で学ぼうと思い『たった2日でできるRuby』にある puts("Hello,Ruby.") という1行だけ書いたCotEditorで作成した hello.rb というファイルをターミナルで実行するステップで早くもつまづいております。 テキスト通り cd ruby と記述しても -bash: cd: ruby: No such file or directory とでてきてしまいます。 どなたかご教授お願いできますでしょうか? 画像なしですみません、何故か画像がアップできません。 ファイルサイズ全然余裕なんですけどもね・・・。

  • ruby初心者です

    RDEを使っています。 input_value = gets puts input_value p input_value    を書くと、上に書いたprint文などより先に左下のコンソールに 先に入力するようになります。 コマンドで実行するとうまくいくのですが。 何か設定が間違っているのでしょうか? 教えていただければたすかります。

    • ベストアンサー
    • Ruby
  • Ruby の実行について

    Ruby初心者です。 メモ帳で puts "hello world"と打ち、名前をsample.rbにし、c:\Users\rbというファイルに保存しました。次にコマンドプロンプトで c:\Users\rb>ruby sample.rb と入力したんですが、'ruby'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。といわれました。 どうすればいいのですか? 本を見てもネット上のサイトをみても >ruby ●●.rb なんです。

    • ベストアンサー
    • Ruby
  • Ruby vim 実行の仕方

    Rubyをvimで書いたので、実行しようとしたのですが、実行できないです。何がダメなのでしょうか? 手順としては、 vimで puts("Hello World!")と書きました。 w hello_ruby.rbと書いて保存しました。 コマンドプロンプトを開いて、hello_ruby.rbと入れて、Enterを押したのですが、 ’hello_ruby.rb’は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出ます。 コマンドプロンプトで、ruby -v と入れると、Rubyのバージョンは出てきます。 何がいけないのでしょうか?修正の仕方を教えてください。 詳しい方いらっしゃいましたら、よろしくお願い致します。

    • ベストアンサー
    • Ruby
  • Ruby初心者です。

    以下の練習問題をやっているのですが、どうもうまくいきません。 (1)担当名が"end"になる迄、担当名と売上を入力する。 (2)売上合計を求める。 (3)各担当の売上が売上合計の何%になるかの比率の計算を行う。 (4)担当名、売上、比率を表示する。 どこがいけないのがご教授頂けますでしょうか。 よろしくお願い致します。 *********************************** #! ruby -E Windows-31J:utf-8 # coding: utf-8 kensu = 0 uriage = 0 goukei = 0 uriage_t = [20] tanto = [10] tanto = [20][10] puts("担当名がendで終了") print(kensu = kensu + 1, "人目の担当名は") tanto = $stdin.gets.chomp! tanto.gsub!("\n", "") print("売上") uriage = $stdin.gets.chomp!.to_i while tanto != "end" kensu = kensu goukei = goukei + uriage uriage_t = uriage tanto_t = tanto print(kensu = kensu + 1, "人目の担当名は") tanto = $stdin.gets.chomp! tanto.gsub!("\n", "") if tanto != "end" print("売上") uriage = $stdin.gets.chomp!.to_i end end kensu = kensu + 1 goukei = goukei + uriage uriage_t = uriage tanto_t = tanto, "合計" puts "________________________________________" puts "  担当      売上  比率  " puts "________________________________________" for i in kensu kensu += i ritu = uriage * 100 / goukei puts "担当名は#{tanto} 売上は#{uriage_t}円 比率は#{ritu}%" end

  • rubyで標準入力とファイルからのgets

    ActiveScriptRuby v1.8.5でやっています。 実行時にコマンドラインでファイル名を与えてファイルの内容を取得した後、氷人出力からも入力をとろうとしています。しかしファイルの内容を読み出したあとのgetsがnilを返すだけで標準入力から入力をとれません。以下のようなコードでやっています。 ##stdin.rb while line = gets do print line break if line.chomp.empty? end puts' - ' print gets #ここで標準入力から文字をとりたい 実行時は ruby stdin.rb moji.txt という感じで読ませたいファイル名を渡しています。 マニュアルには 最後まで ARGF を読み込んだ後、再度 ARGF から内容を読むと (ARGV が空なので)標準入力からの読み込みとなります。 とありますが、どこがおかしいのかさっぱりわかりません。 アドバイスなどよろしくお願いします

  • プログラム実行中に強制停止させる方法

    再び失礼します。 現在以下のようなソースコードを実行しています。 while true do print "commando?\n" command = gets if command == "end" then break end end ループから抜け出すために、getsメソッドを用いて、 endと入力されればループを抜けるという感じにしたいのですが うまく抜け出せず、無限ループに陥ってしまいます。 質問内容は、このように、getsメソッド実行中(?)にプログラムの強制停止を したいのですが、そのような方法はありますでしょうか。(例えばctrl+???とか) 実行環境は、terapadを使用してソースコードを書き、rubyコマンドプロンプトで rubyコマンドを使って実行しています。 それではよろしくお願いいします。 ※投稿確認したのですが、ソースコードにうまくインテンドが挿入されていません・・ 見づらくて申し訳ございません

    • ベストアンサー
    • Ruby
  • Rubyの初心者ですが壁にぶちあたっております

    『初めてのプログラミング』を読んでRubyを勉強しています。その中にある問題でp.127の『ローマ数字をアラビア数字に変換するプログラム』を書け、というのがありまして、最初に入力したローマ数字を弾く部分を書いているのですが…(以下コード) puts 'Enter roman numeral.' roman = gets.chomp.upcase roman_array = roman.to_a def char_checker(char) parts = ['I', 'V', 'X', 'L', 'C', 'D', 'M'] parts.each do |part| if part != char char = false elsif part == char char = true return char end end puts char_checker('X') (以上コード) このchar_checker, なぜかpartsを返してきます。返してほしいのはcharのtrueかfalseなのに泣 書いたコードに間違いがあるのはわかっているのですが、どこで間違っているのかがどうしてもわかりません。わかる方回答よろしくお願いします。ちなみに環境はMac OS X 10.5.4でrubyのバージョンはバンドルされている1.8.6です。

  • Rubyについて

    Rubyの環境について: ●Rubyのダウンロード(ruby186-26.exe) 環境変数を設定しました。 テキストエディタを利用せずにRDEをインストールしました。 ●RDEの最新版のファイルをダウンロード(RDE1.1.1_setup.exe) RDEでプログラムの作成と実行してみます。 RDE画面のエディタウィンドウに日本語を入力すると、文字化けになります。そこで、実行してみます。コンソールウィンドウでは、入力した文字が文字化けせずに表示されました。 どうしましたら、エディタウィンドウは文字化けせずに日本語が表示されますか? 困ってます。 ご指導お願いいたします。

  • 3つほどプログラムをおしえてください。

    (1)100までの整数をいくつか入力し、10刻みでの個数を表示し、負の数が入力されると整数の入力を終わるプログラムです。各範囲の個数は配列に格納する。 実行結果 65 30 21 95 5 -1 0--- 9 : 1 10--- 19 : 0 20--- 29 : 1 30--- 39 : 1 40--- 49 : 0 50--- 59 : 0 60--- 69 : 1 70--- 79 : 0 80--- 89 : 0 90---100 : 1 (2)数字の文字列を入力し、その文字列に含まれる各数字(文字)'0','1',~'9'の個数を表示するプログラムの作成。 実行結果 1231234567 0: 0 1: 2 2: 2 3: 2 4: 1 5: 1 6: 1 7: 1 8: 0 9: 0 (3) 変数xは、0~1までの0.01刻みの値(101個)を取るとする。このとき、2次関数 f(x)=3x^2+2x+1の値が2.0<f(x)<3.0となるxの値をの個数を求めるプログラムの作成。ただし、xを引数としf(x)の値を返す関数を作成して、それを使用する。 実行結果 number=21 やってるうちにわけがわからなくなってしまいます。どなたかよろしくおねがいします。