次の内容を含むmain.txtファイルがあるとします。
一部のテキスト
#ピース1.txtを含む
その他のテキスト
#includefragment2.txt"
その他のテキスト
そのうち、彫刻1.txtと彫刻2.txtは次のとおりです。
部分1.txt:
これは作品1の内容です。
部分2.txt:
これは作品2の内容です。
質問:次のように「拡張」インクルードファイルを使用してmain.txtファイル全体を表示する方法:
一部のテキスト
これは作品1の内容です。
その他のテキスト
これは作品2の内容です。
その他のテキスト
ありがとう
ベストアンサー1
Cプログラミング言語の構文を使用したい場合は、それを解析するために#include "file"
使用できます。cpp
たとえば、main.txt
次のような場合:
Some text
#include "fragment1.txt"
Some other text
#include "fragment2.txt"
Some other text
次のことができます。
$ cpp -nostdinc -P <main.txt
Some text
This is content of fragment1
Some other text
This is content of fragment2
Some other text
説明したようにman cpp
:
-nostdinc ヘッダー・ファイルの標準システム・ディレクトリーを検索しません。 -Iオプションで指定されたディレクトリ(該当する場合は現在のファイルのディレクトリ)のみを検索します。
-Pプリプロセッサ出力でラインマーカーの生成を抑制します。これは、C以外のコードでプリプロセッサを実行するときに便利です。ラインマーカーによって混乱する可能性があるプログラムに送信されます。
ただし、これはcpp
単に線の解析に関するものではなく、#include
ユースケースに応じて役に立つかもしれません。たとえば、cpp
すべてのCスタイルのコメントを自動的に削除するには、次のようにします。
// this is a comment
/* this as a comment too /*
役に立つようで-C
コメントを保持したい場合は、オプションがあります。もう一つのことは、プリプロセッサディレクティブで始まるcpp
すべての行を解釈しようとすることです。#
たとえば、次のようになります。
#define A 7
Value: A
次のように印刷されます。
Value: 7
この
#blah blah
エラーが発生します。
<stdin>:14:2: error: invalid preprocessing directive #blah
実際には、cpp
構成パーサーに依存するいくつかのプログラムがありますxrdb
。