• ベストアンサー

簡単だと思うんですがわかりません

printf("………\n\ (スペース) あ"); これを実行すると、 ……… (スペース) あ となってしまって、『あ』が左詰めになりません。 プログラムが長いので見やすくするために\で改行して書いたんですが、どうすればいいのでしょうか。どなたかお願いします。 ちなみに、プログラム上で『あ』を右に持って行くときにTabキーを使ってみましたがそれでは動かなかったので、スペースキーを使い上のような状態にしました。 (スペース)←としたのは、質問を投稿するとあたかも左詰めで投稿したかのように表示されてしまったためですので、分りにくいかもしれませんがご了承下さい。 ほんとうは、"の下に『あ』がくるように書いてます

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

文字列が (空白文字を入れて) 連続しているときには自動的に 1つの文字列になりますので, #1 のように 2つの文字列に切るなら printf("………\n" (スペース) "あ"); で OK です. 最初の行末に \ は入れなくていいです.

Neptune23
質問者

お礼

ありがとうございました。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

いや, C でも行末に \ を置けば行の継続は可能ですよ>#3. 「プリプロセッサでは~」というのは, まさにこの機能そのものですし. ただ, C のソースにおいて改行が意味を持つのは実質的にプリプロセッサ指令だけなので, それ以外の場面で「\ による行の継続」が必要なことはほとんどありませんが. だからこそ, #2 では「入れなくてもいいです」と書いたんだけど. 「\+改行」というエスケープシーケンスは存在しないので, 「文字列リテラル中に『\+改行』を入れる」というのはやらない方がいいです.

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス  正しくはNo.2さんの指摘どおりです。 >プログラムが長いので見やすくするために\で >改行して書いたんですが、どうすればいいのでしょうか。  ↑  VB、VBScriptでは『\』記号で行連結できますがC/C++では利用できません。  文字列の場合は『"』文字で囲ったものを続けて書くだけで連結されます。  例1:  printf( "あいうえお\nかきくけこ\nさしすせそ\n" );  例2:  printf( "あいうえお\n"      "かきくけこ\n"      "さしすせそ\n" );  例3:  printf( "あいうえお\n" );  printf( "かきくけこ\n" );  printf( "さしすせそ\n" );  ※例1~例3はどれも同じ表示結果になります。 ・それから『#』から始まるプリプロセッサでは1行が長いとき、  行末に『\』文字を書くことで行連結します。  通常のソースではVBとは違って『\』文字で行連結しません。

Neptune23
質問者

お礼

ご丁寧にありがとうございました。

  • Apr2nd
  • ベストアンサー率69% (36/52)
回答No.1

書かれているコードでは(スペース)と書かれている部分も文字列の一部と見なされてしまいますので 以下の様に最初の行の¥の前に「"」を入れ、2行目の「あ」の前にも「"」を入れればよいと思います。 printf("………\n"\ (スペース)"あ");

Neptune23
質問者

お礼

ありがとうございました。

関連するQ&A