• ベストアンサー

素朴な質問です。¥nと\nの違い!

最近、C言語の勉強を初めてばかりですが、 本を見ながらソースをテキストで打っていますが、改行(¥n)で表現されているので その通りの入力するとコンパイル時に改行されず¥nのまま表示されます。 いろいろ調べた結果(\n)に変換すると改行してくれました。 ¥nと書かれているものと\nで書かれているものがあるようですが、どのように理解すれば よいのでしょう?キーの位置は同じですが、option+¥で\nになります。(Macです) コンパイラによって違うのでしょうか? どなたか教えてください?

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.1

>(Macです) Macでは、「半角の¥」と「半角の\(バックスラッシュ)」は、異なる文字です。 日本語Windowsでは、「¥」と「\」は同じ文字で、使用するフォントを変更する事により「¥」に見えたり「\」に見えたりします。 C言語でエスケープ文字を書く場合、決まっているのは「ASCIIコードの5C(16進数)の文字を使う」と言う事だけです。 Macでは、ASCIIコードの5Cの文字を打つ場合、「\」をキー入力しなければなりません。 Windowsでは、ASCIIコードの5Cの文字を打つ場合、「¥」をキー入力しなければなりません。 もし「ASCIIコードの5Cの文字」が「₩」である場合には「₩」をキー入力しなければなりません。 「ASCIIコードの5Cの文字が、画面上で、どんな文字に見えるか?」は、OSごと、パソコンごとに違います。 あるパソコンは「¥」に見えるのに、同じ文字を別のパソコンで見たら「\」になったり「₩」になったり「€」になったりするのです。 なので「本に¥とかいてあるから」と言って、そのまま「¥」を書いてはいけません。

qzy00216
質問者

お礼

早速のご回答ありがとうございます。 大変よくわかりました。 まだまだ乗り越える山が多くありそうですね。 なんとか頑張ってみます。 ご親切なご回答ありがとうございました。

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.2

因みに、Macで書いたと思われる、貴方の質問文は、Windowsパソコンで読むと、添付画像のように 「¥と\が区別できない」 ので、質問文が意味不明になってしまいます。 つまり 「Macで\を打つと、Windowsで¥に見える」 ので、訳が判らなくなるのです。

関連するQ&A

  • mac os10.2.8での\n

    mxml+actionscript3.0をmacのmi2.1.6にて書いていますが 本のサンプルを(windows用の本です)手打ちで入力したところ 【\n】のところがコンパイルしても flashplayer上でそのまま出力されてしまいます。 文字コードはutf-8で保存し改行コードはCR・CR+LF・LFと 3パターン試しましたがだめでした。 またネットで検索してバックスラッシュを文字パレットから 直接入力するという方法も試しましたが結果は同じでした。 本のサンプルファイルをネット上からダウンロードしたものを 加工せずにコンパイルすると(もちろんmac上で)正常に表示されます。 原因の心当たりがある方いらっしゃいましたらご教授願います。 以下環境になります。 ------------------------------------ os:mac os 10.2.8 mi:2.1.6 ターミナル:1.3.3 flash player:9.0.124.0 ------------------------------------

  • コンパイラーとアセンブラの違い

     今晩は。  コンパイラーとアセンブラとは何がどう違うのでしょうか。 またコンパイラー、アセンブラは、その後に更に機械語に変換されるとききましたが、なぜ一気にソースコード から機械語に変換しないのですか。  他にCalsという言語もあると聞きましたが、この言語も機械語とは違うと聞きました、とするとそもそもこの 言語自体の役割は何なんでしょう。

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • gccコンパイラー

    今、gccでコンパイルするc言語のコンパイラーを探しています。 フリーでダウンロードできるいいコンパイラーはないでしょうか。 お勧めなどがありましたら教えてほしいです。 あと、C言語ではgccやbcc等のコンパイラーで プログラムソースの書き方容が変わったりするものなのでしょうか? 一応、ボーランド?のコンパイラーは持ってます。 ただ、今度OJTでUNIX環境のc言語開発の現場に行く事になり gccでコンパイルするもので勉強しとくようにいわれています。 宜しくお願いします。

  • コンパイルの実行の仕方

    初めてプログラミング言語を授業でとったのですが、 コンパイルの【実行】の仕方がわかりません。 まず、コマンドプロンプトを開くまではわかったのですが、 学校での説明に 「javaのコンパイラはjavacであるので、以下のように指定する。 javac <ソースファイル名> 」 と書いてありました。 コンパイラというのは上記の場合、コマンドプロンプトに 「C:\>javac *****.java」を入力すればコンパイルしたということになるのでしょうか? 「指定する」とかいてあっても指定の仕方すらわからないのです。 コンパイルを検索してもなかなかコンパイルをする意味がよくわからないので、よろしければ教えてください。

  • テキストボックスでカーソルが表示しない

    OSはVISTA。WORDは2007。 1 WORD画面にテキストボックスを挿入すると、通常はその枠の中に   自動的にカーソルと改行キーが表示され、その位置から文字が   入力できるの筈だが。    カーソルと改行キーが表示されず、従って文字が入力できない。 2 図形の挿入をして、右クリックで「テキストの追加」をクリック   すればカーソルと改行キーが表示され、その位置から文字が   入力できるの筈だが。    カーソルと改行キーが表示されず、従って文字が入力できない。 3 尚、同じPCでEXCEL2007では、1,2ともできる。 4 購入当初はは出来ていたのだが、、。何かご設定でもしたのか不明。 5 解決方法を教えてください。

  • 改行コードについて

    ファイルの文字コードはutf-8で改行コードはLFです。 メール送信時にメール文面の一部にいれるテキストを mysqlに保存しています。 メール送信のソース内でデータを読み込み送信までは できているのですが改行コードを変換したく $msg = str_replace("\r\n", "\n", $msg); とやってみましたが改行されず普通に\r\nと表示され うまく変換ができません。 いろいろと試した結果以下のソースでは正常に改行されました。 $msg = str_replace("\\r\\n", "\n", $msg); メール送信前にデバッグでしてみましたが読み込むデータの 改行部分は\r\nとなっているのは確認済みです。 \を多くつければ改行はできるようなのですがこれは仕様なの でしょうか? またmysqlに入れてあるデータはフォームから入力し登録 しているのですがLFの改行コードは\nなので登録時に\r\nではなく \nと変換してからmysqlに登録するのがいいものなのでしょうか?

    • 締切済み
    • PHP
  • プログラミングを始めたのですが…

    最近C言語の勉強をはじめました。 と言っても本当にまだprintf関数で文字を表示させたり、といったようなことなのですが… 自分は本を読んでるだけでは覚えられないので、コンパイラで実践しながらやっています。そこで、{}や、""を入力するとき、自分はshiftキーを押しながら入力しているのですがプログラミングをしている人もみなさんこれで入力しているのでしょうか?さすがにこれでは入力が遅れてしまうので何か改善策のようなものがあると思うのですが… あと、プログラミングを生業にしているようなひとは当然ブラインドタッチで入力するのだと思いますが、記号とかのキーはブラインドタッチのホームポジションからは外れた位置にありますよね?それでもブラインドタッチで行えるものなのでしょうか?

  • MPWで \ が入力できない

    最近Macでプログラミングの勉強を始めたばかりなのですが、ただで使えるということなので、MPWで練習を始めました。 それでソースファイルとやらを書きはじめてみました。で、とりあえず日本語が扱えないということは分かりました。 それは諦めるしかないと思うのですが「\」のキーを押すと「/」の反対の記号になってしまうのは何故なのでしょう?shiftキーやoptionキーと押しても「\」は出ませんし、改行(\n)とかどうしたら良いのでしょうか? どなたか分かる方、教えて下さい。

  • セグメンテーション違反について

    C言語であるプログラムを作っています。コンパイルは上手くできるのですが、実行するとセグメンテーション違反と出てしまいます。それもセグメンテーション違反と出るときと出ないときがあり困っています。そこでプログラム中のどこがセグメンテーション違反を指しているのか知りたいのですが、何かセグメンテーション違反の場所を教えてくれるようなオプションはないでしょうか? プログラムソースを見てもらうのが一番いいと思いますが、行数が1000行を超えているので断念しました。OSはLinuxでコンパイラはgccです。どなたかご教授お願いします。

専門家に質問してみよう