• ベストアンサー

printf("文字列\n")が円マークなんです!!斜線がでない!!

うちのノートパソコン(IBM)OSはTurbolinux Personalと、デスクトップ(NEC)OSはWindows2000でC言語のプログラミングをすると文字が変なんです。 printf("文字列\n"); と改行のエスケープシークエンス?を入力すると円マーク(\)なんです!! 右下がりの斜線のキーを押してるのに円マーク(\)しかでないんです。二つのPCどちらでやってもです。C言語のテキストでは右下がりの斜線とnで改行のエスケープシークエンス?になっているので見ていて気持ちが悪いです・・・。 ちゃんと右下がりの斜線は出せないものでしょうか。ちなみにキーボードには右下がりの斜線が書いてあります。 プログラミング上も\nで右下がりの斜線と同じ、改行の意味で理解されているらしく、ちゃんと改行されます。 でも右下がりの斜線じゃないと気持ち悪い・・・。直せませんか?

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

日本語環境だと、\で正解です。 同じ意味(文字コード)です。 \(の半角)は バックスラッシュといいます。 日本語フォントでは、歴史的な原因で \ の文字コードと同じものが割り当てられていますので、日本語フォントで表示している限り、 ¥(半角)が表示されます。 歴史的背景をここで解説すると文字数足りなくなりますので。 ここ http://ja.wikipedia.org/wiki/%5C や、ここ http://ja.wikipedia.org/wiki/%E5%86%86%E8%A8%98%E5%8F%B7 を読んでください。

rabitwo
質問者

お礼

回答ありがとうございます。 日本語環境なので、¥で正解でしたか。変だ、変だと思っていましたが、みなさんもそうなのですね。 wikiのページありがとうございます。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

VisualC++ではフォントの設定を"Arial"や"Courier"などの英語フォントにすると表示できますよ。 私は \ でも気にならないので変えてませんが。

rabitwo
質問者

お礼

ありがとうございます。 VisualC++ではフォントの設定を英語フォントにすると表示できるのですね。 VisualC++も別のパソコンに入っているのですが、今はC言語の学習にgccを使っているので今度試してみます。 \で気にならないものなのですね。私のLinux/Unixのテキストで\nはバックスラッシュだったものだから、\になってしまうのが気になって気になって(笑) なんか、C言語のテキストをみたらバックスラッシュではなく始めから\nで説明されていました。 始めに見たテキストがバックスラッシュだったのでそれが標準だと思って気になってるだけなんですね、きっと。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

エディタの表示フォントを適切に設定すれば、日本語環境でも逆斜線を出せることがあります。 なお、逆斜線を使えない環境の場合、三文字表記で ??/ と記述するのが正しい作法です(不便なので、そんなことをする人はまずいませんが...)。

rabitwo
質問者

お礼

三文字表記の豆知識ありがとうございます! 不便ですから、やっぱり私も\で妥協します(笑)

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.2

まあ、そういうものだと思っていただくのがいいのかもしれません。 以下は推測です。 もしかすると、英語版のOSを使ったり、BIOSの設定か何かでキーボードを英語仕様にしたりすれば、 "\"キーでバックスラッシュ("¥"ではなく)を入力できるかもしれません。 推測ですので、はずれている確率が大きいです。

rabitwo
質問者

お礼

ありがとうございます。 バックスラッシュがでなくて\マークがかわりに出て、それを使う。そういうものなのですね(^^;

関連するQ&A

  • 文字列中のシングルクォートにエスケープシーケンスは必要?

    C言語でダブルクォートで囲まれた文字列内で使われる、「\」で始まるエスケープシーケンスがありますよね。例えば、 「\n」 ⇒ 改行 「\t」 ⇒ タブ 「\"」 ⇒ ダブルクォート 「\\」 ⇒ バックスラッシュ などですが、C言語のリフェレンスを見ると「\'」(シングルクォート)や「\?」(クエスチョンマーク)なども載っていました。でもこれらの文字は、実際はエスケープシーケンスを使わなくても、ちゃんとコンパイルされ表示もされます。 「'」や「?」をC言語の文字列内で使うには、公式には「\」が必要なんでしょうか?

  • C言語 エスケープ文字 エスケープシーケンス?

    プログラミング初心者です。 早速ですが現在、C言語入門書に目を通している最中なのですが理解出来ない部分が有ります。 内容としましては 「エスケープ文字」 に関してです。本書ではあまり理解出来なかったのでネットで検索していると、「エスケープシーケンス」 と言う用語も数多く出てきました。 いろいろ検索し私なりに出した答えは..... •エスケープ文字 = 文字が持つ特別な意味を無効にする為の文字。 •エスケープシーケンス = 改行などの特殊な文字を英数字の組み合わせで表現した物。 と....上記の様に私は理解しているのですが現在読んでいるC言語入門書の内容だとエスケープ シーケンスと考えられる説明が 「エスケープ文字」 として記述されています。 それはC言語ならではの扱い方なのか?、本書の内容が間違っているのか? 分かりづらい説明だと思うのですがよろしくお願いいたします。 因に現在読んでいる入門書は 「読本C-C言語徹底攻略」 と言う本でかなり昔のになります。 

  • C言語

    C言語のプログラミングでコンパイルしたら 2-1.c:28:9: 警告: unknown escape sequence: '\211' 2-1.c:28:9: 警告: unknown escape sequence: '\211' とでました。 どういうことですか?

  • phpの<br>\nと\nとエスケープシーケンスについて

    現在、phpを学んでいるのですが、いきなり"<br>\n"と"\n"の違いがわからなくて困っています。\nはエスケープシーケンスで改行を意味するのですよね?<br>も改行を意味するから・・・わざわざダブルクォーテーションの中に<br>を書かなくても良いのでは・・・ と思うのですが・・・違うのでしょうか!? またエスケープシーケンスについてなのですが、 ¥を付けて表す特殊文字がエスケープシーケンスなのですね。 しかし、シングルクォーテーション内では「¥’」と「\\」だけが使える。 ダブルクォーテーション内では記述すると画面に表示されないということですが・・・。 ではエスケープシーケンスっていつ使うのですか?使い道がないような気がするのですが・・・・。 使えるのは、シングルクォーテーション内の「¥’」と「\\」だけになるのでは・・・・。 そのへんのところを教えてください。

    • ベストアンサー
    • PHP
  • \n で改行する意味って??

    最近少しPHPプログラミングを始めました。 なので超初心者です。 ネットなどでPHPのサンプルを見ていたら、よく『\n』というものを目にします。 調べてみたところ、エスケープシーケンスと呼び改行のような作用をする、という事は分かったのですが、 実際のサイト画面上では改行されないのに、何の為に使うんですか?そこが良く分かりません。 教えて下さい!!

    • ベストアンサー
    • PHP
  • xcodeで改行が。。

    xcodeを使ってCプログラミングをしているのですが、改行の時に?nと打つとそのまま?nと表示されてしまいます。バックスラッシュを他のページからコピペしてくると改行できるのですが、はじめから?nで改行できるようにするか,バックスラッシュを打てるようにするにはどうしたら良いのでしょうか?? OSは10.3を使っています。 ↑文中のはてなマークは円マークです。

    • ベストアンサー
    • Mac
  • カンマ形式のテキストファイルの置換

    テキストファイルの変換に困っています. 1,2,3,4 5,6,7,8 というデータを 1 2 3 4 5 というように置換操作でカンマ→改行にしたいと 思っています. ・秀丸の場合 ,→\n(改行文字)でできます. でもメモ帳の場合は\nのようなエスケープシーケンス は使えません メモ帳で置換後の文字列を改行にしたいのですが どのようにしたらいいでしょうか?教えてください メモ帳でだめならエクセルではできないでしょうか?

  • 文字列の読み込みに関して

    C言語で、fgetsを使って文字列ファイルから読み込みを行うと、改行もしくは指定した文字列が来ると読み込みを、止めますが途中で改行が来ても読み飛ばして。(丸)までを読み込むようにするには、どのようなコードを書けばいいのですか? 別に使う関数は、これ以外でもいいのでコードを教えてもらえますか? お願いします。

  • 文字列から文字列を検索するプログラム

    現在、C言語を学習しています。 文字列から文字列を検索する関数に「strstr]がありますが、自作関数として自分で作成する方法を考えております。 文字列から文字を検索する事は出来たのですが、文字列を検索するシーケンスがわかりません。 有識者の方、御教授よろしく御願い致します。

  • char型の文字列をウィンドウに表示させる。

    c言語のAPIを用いてプログラミングをしているものです。 char*型の文字列をウィンドウに表示させるにはどうしたらいいでしょうか。できれば、例を挙げて教えていただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう