[解決済み] C++の複数行の文字列リテラル
2022-03-19 14:28:55
質問
C++で、Perlのように複数行のプレーンテキスト定数リテラルを使用する方法はありますか?多分
#include
をファイルに入れること?私は思いつきませんが、でも、それはいいことだと思います。C++0xに搭載されるんだろうけど。
どのように解決するのですか?
まあ... ちょっとだけ。一番簡単なのは、隣接する文字列リテラルはコンパイラによって連結されるという事実を利用することだ。
const char *text =
"This text is pretty long, but will be "
"concatenated into just a single string. "
"The disadvantage is that you have to quote "
"each part, and newlines must be literal as "
"usual.";
引用符の中ではないので、インデントは関係ない。
また、埋め込まれた改行をエスケープするように注意すれば、この方法も可能です。私の最初の回答のように、これを行わないと、コンパイルできません。
const char *text2 = 一方、ここでは気が狂ってしまいました。 で、本当にリテラルが数行に渡っている。 をわざわざ引用せずとも、各行の୧⃛(๑⃙⃘◡̈๑⃙⃘) の内容です。これはうまくいくのですが、インデント."ができないのです。
行末のバックスラッシュは行末の直前でなければならず、ソース中の改行をエスケープして、あたかも改行がなかったかのように振る舞います。バックスラッシュがあった場所では、文字列の中に改行が入りません。この形式では、明らかにテキストをインデントできません。インデントすると文字列の一部となり、ランダムなスペースで文字化けしてしまうからです。
関連
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み] noexceptを本当に使うべきはいつですか?
-
[解決済み] なぜこのプログラムは3つのC++コンパイラで誤って拒否されるのですか?
-
[解決済み] C / Objective-Cで文字列リテラルを複数行にまたがるように分割するには?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】正気で、安全で、効率的な方法でファイルをコピーする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] C / Objective-Cで文字列リテラルを複数行にまたがるように分割するには?