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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3466閲覧

VSCode上で複数をcoutすると勝手に改行されてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/03/15 06:15

問題点

  • VSCode上でcout一つで複数を出力しようとすると勝手に改行される。

コード例

c++

1cout << "hoge"; // OK 2 3cout << "hoge1" << "hoge2"; // このように書いた場合、 4cout << "hoge1" 5 << "hoge2"; // という風に改行されてしまう。 出来れば上のように表示をしたい。

不明点

  • これはclang-formatの設定のせいなのか?
  • そうでは無いならば、C/C++ Clang Command Adapterのせいなのか?

イメージ説明
clang-formatの設定です。
関係ありませんが最近突然Terminalが"挿入"とか日本語になったのびっくりですね。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tachikoma

2019/03/15 07:06 編集

これはformat on saveがtrueになっているためでしょうかね。clang-formatの設定をいろいろ試しているところですが、文字列リテラルが連続すると常に改行されてしまうかもしれないですね・・・。
退会済みユーザー

退会済みユーザー

2019/03/15 08:05

format on saveに確かにチェック入れてました! 一度外して試してみますね!
thkana

2019/03/17 15:23

私はVisualStudio Codeを使ってないので個別の事情はわかりませんが、エディタの一般論としてそういうのは単にコード整形の設定であって、実行結果に影響を与えるようなものじゃないのでは? その議論に入る前に ・VisualStudio Code環境下でのみそうなるのか。直接コンソール上でコンパイル/実行したらならないのか。 ・(もしコンソールでも同様なら)Clangだとそうなるのか。gccとか、可能であればその他のコンパイラではどうなるか ・可能であれば、違うシェルではどうなるか といったあたりを確認すべきかと思いますがいかが? それとも、問題点の"VSCode上で"というのが暗に「VSCode以外ではそうならない」という意味だったりするのでしょうか? 曖昧に思います。
退会済みユーザー

退会済みユーザー

2019/03/18 01:11 編集

なるほど、まさかそこを突っ込まれるとは思ってませんでした。 そうですね、VSCode上でのみの話です。VSCode以外ではもちろんそうなりません。VSCode上で、と明記してるのもそのためですし別のエディタでも同じ現象ならタイトルにVSCode上で、とは言わないわけです。 なるほど、実行結果に影響が無ければ良いじゃないかということですね? 私個人としては関数での波括弧が改行されているコードと空白1個開けて書かれているコードと空白無しで詰められて書かれているコードがひとつのプロジェクト内に混同したりするのは、いくら実行出来ても嫌だと思う質なので影響与えなければ良いと思う方なのであれば… 参考にさせて頂きます、ご意見ありがとうございました!
thkana

2019/03/18 14:16

あ、コードフォーマットの結果、という意味だったんですね。実行結果と勘違いでした。失礼しました。
guest

回答1

0

ベストアンサー

なにやら変なコメントがつき始めたので、問題の整理と対応法を回答として投稿しておきます。

問題の整理

ここの問題はVScodeのC/C++というプラグインが提供するコードフォーマット機能であり、そのバックエンドはclang-formatです。clang-formatはコマンドラインツールとしても使えるので、上記の問題をデバッグするにはターミナルから-style=flie等のオプションを加えて実行することで質問者の現象を再現できます。

対応方法

この問題は二つに分けることができて、

  1. clang-formatの設定で所望のフォーマットを実現できるか
  2. できない場合、自動フォーマットをどのように止めるか

です。1. については試行錯誤してみましたが、いい設定方法は見つかりませんでした。2. については、次善の策としてVScodeが自動でclang-formatを止める、というのをコメントで書いておりました。

その他の方法

ここまで書いて思い出したのですが、特定のコードブロックをclang-formatに無視させる方法がありました。

Disabling Formatting on a Piece of Code

よければこちらもお試しください。

投稿2019/03/18 02:01

tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/03/18 02:59

整理ありがとうございます、そしてすいません。 そのようなサイトがあったのですね! そのサイトを見つつ試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問