質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.03%

Rubyでバックスラッシュ記法が使えない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 2,081

kyaron

score 11

初めて質問します。
そして、更にプログラミングも超初心者で、40を過ぎて思い立ってRubyを始めてみました。
【作りながら学ぶRuby入門 第2版】 をという本を購入して地道に練習問題を始めたばかりなんですが、いきなり壁にぶち当たってしまいました。

バックスラッシュ記法がなぜか使えません。
# -*- coding: utf-8 -*-
print "ようこそ¥n"
print 'Welcome¥n'
という例題の結果は、

ようこそ
Welcome¥n

という結果になるはずでしょうが、

ようこそ¥nWelcome¥n

となってしまいます。当然、Welcome¥nの後にターミナルのユーザー名がきてしまい、これも改行できていません。

どこに問題があるのか分からず、そのまま若干先に進んでみてるものの同じようにバックスラッシュ記法は、当たり前のように出てきては改行ができずにいます。
例題ではまだ [ puts ]  と [ print ] しか使ってないですし、クラスやメソッドの説明段階で、他は問題なく処理され、[ puts ] は問題なく表示されて改行もされています。

バックスラッシュ記法が使えないのは何が原因なのでしょうか?
他の方の質問すら分かっていないくらいの超初心者です。
いろいろググってみたのですが、同じような事に出会えず、ここに迷い込んできました。
大変申し訳ないですが、超初心者にも分かるような解決策をお願い出来ればと思ってます。


主な使用versionは、
-Ruby 1.9.3 p194 (2012-04-20 revision 35410) [x86_64-darwin13.4.0] (homebrew  よりinstall)
-Emacs ver24.4(9.0)  
-osX 10.9.5 Mavericks です。よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

こんにちは。
まず最初に、おっしゃている状況が私の環境でも再現されました。

[ykt68@sakura-vps] date
2015年  4月 23日 木曜日 18:30:14 JST
[ykt68@sakura-vps] cat > question8975.rb
# -*- coding: utf-8 -*-
print "ようこそ\n"
print 'Welcome\n'
[ykt68@sakura-vps] ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
[ykt68@sakura-vps] ruby question8975.rb
ようこそ\nWelcome\n[ykt68@sakura-vps]

私は、RLoginというSSHターミナルで、LINUXサーバーに
ログインして、そこでRubyの環境を使用しています。

そこで、以下のようにquestion8975.rbを修正しました。
以下の説明では、分かりやすいように、円マークを¥(全角)で記します。

  • エディタで、question8975.rbを開く。
  • 「ようこそ」を出力している行の"ようこそ¥n"をいったん削除して、
  • 「ようこそ」の後に半角スペースを入れてから¥nを入力
  • その後、バックスペースで¥の直前の半角スペースを削除

上記のようにして保存した、question8975.rbだと

[ykt68@sakura-vps] ruby question8975.rb
ようこそ
Welcome\n[ykt68@sakura-vps]

と望んでいる結果になりました。

お手すきであれば、上記のように、「ようこそ」の後に一度無駄な半角スペースを入れて、
その後に¥nを打ち込み、その後、バックスペースで消すということを、一度お試し
頂けますでしょうか?

解決につながれば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/04/23 21:36

    了解しました。ところで、エディタはEmacsをお使いとのことですが、Macにはデフォルトで vi がインストールされていると思いますので、一度、vi で当該のソースを作成し実行されてみてはいかがでしょうか。もしそれで、期待通りの出力が得られたら、プログラミングの問題というよりも、Emacsの設定の問題ということになり、検討すべきことが絞られてくるかと思いますがいかがでしょうか。

    キャンセル

  • 2015/04/23 21:46

    ykt68さん、ありがとうございます!
    k.tadaさんもvim を使っているようですし、本当に今現在、vimtutorをやっております!(笑

    あれから少し調べ直してみたら、どうやらMacOSでのEmacsは仕方ないようです。
    様々な設定方法があるようですが、超初心者には難しく、vimmerになるべくtutorしております!
    もう少し知識と情報が増えたらEmacsに戻ってみようかと思います!

    キャンセル

  • キャンセル

+1

円マーク(¥)になっているため、期待通り動いて居ないのではないでしょうか。
バックスラッシュ記法なので、バックスラッシュ(\)を使いましょう。

Macでは、Option + ¥で\の入力が可能です。

# -*- coding: utf-8 -*-
print "ようこそ¥n"
print 'Welcome¥n'



# -*- coding: utf-8 -*-
print "ようこそ\n"
print 'Welcome\n'

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/04/23 19:06

    回答ありがとうございます。

    ただ、テキストエディタのEmacsで Option + ¥ をしてもOptionキーがMetaキーとして扱われてしまい、[ M−¥ is undefined ]として [ \ ] が入力できませんでした。

    この[ \ ]が入力出来るようにする方がいいんでしょうか?

    キャンセル

  • 2015/04/23 19:07

    すみません。当方VimmerなのでEmacsは分からないです。

    私の場合は、基本的に¥を使う機会はそうないので、Vimのほうでは¥で\が入力されるように設定しております。

    キャンセル

  • 2015/04/23 21:55

    ありがとうございました。
    私もVimmerになるべく勉強します!!

    キャンセル

  • 2015/04/23 22:36

    FreeBSDのRubyでも投稿ソースをコピーすると再現します
    ~ ruby tst1.rb
    ようこそ\nWelcome\n~
    ~ ruby tst2.rb ←ソースを新たに書いたもの
    ようこそ
    Welcome\n~
    ~
    ~ ruby -v
    ruby 2.1.6p336 (2015-04-13 revision 50298) [amd64-freebsd10]
    ~
    ~ cat tst1.rb ←\nを一度削除
    # -*- coding: utf-8 -*-
    print "ようこそ\n"
    print 'Welcome\n'
    ~ cat tst2.rb ←
    # -*- coding: utf-8 -*-
    print "ようこそ\n"
    print 'Welcome\n'

    ~ diff tst1.rb tst2.rb
    2c2
    < print "ようこそ\n"
    ---
    > print "ようこそ\n"

    ~ od -c -t xC tst1.rb
    0000000 # - * - c o d i n g : u t
    23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74
    0000020 f - 8 - * - \n p r i n t " よ
    66 2d 38 20 2d 2a 2d 0a 70 72 69 6e 74 20 22 e3
    0000040 ** ** う ** ** こ ** ** そ ** ** \ ** n " \n
    82 88 e3 81 86 e3 81 93 e3 81 9d c2 a5 6e 22 0a
    0000060 p r i n t ' W e l c o m e \ **
    70 72 69 6e 74 20 27 57 65 6c 63 6f 6d 65 c2 a5
    0000100 n ' \n \n
    6e 27 0a 0a
    0000104
    ~ od -c -t xC tst2.rb
    0000000 # - * - c o d i n g : u t
    23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74
    0000020 f - 8 - * - \n p r i n t " よ
    66 2d 38 20 2d 2a 2d 0a 70 72 69 6e 74 20 22 e3
    0000040 ** ** う ** ** こ ** ** そ ** ** \ n " \n p
    82 88 e3 81 86 e3 81 93 e3 81 9d 5c 6e 22 0a 70
    0000060 r i n t ' W e l c o m e \ ** n
    72 69 6e 74 20 27 57 65 6c 63 6f 6d 65 c2 a5 6e
    0000100 ' \n \n
    27 0a 0a
    0000103
    ~
     0x4Bあたりのデータが違う
     9d c2 a5 6e 22 tst1
     9d 5c 6e 22 0a tst2

    環境はFreeBSD 10.1 エディタはvim7.4です

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る