#defineで定数を設定する場合に、TXTなどのファイルを読み込み、読み込んだ
値を定数として設定することは可能でしょうか?
下記のようなプログラムを考えていたのですが、うまくいかなくて悩んでいます。
ご教授お願いします。
#define VARIABLE '0'
#define TMP fgetc(fopen("./test.txt","r+"))
#undef VARIABLE
#if TMP=='a'
#define VARIABLE 'a'
#elif TMP=='b'
#define VARIABLE 'b'
#else
#define VARIABLE 'c'
#endif
No.2ベストアンサー
- 回答日時:
#define定義はただの文字列置き換えにしかならない。
ということで……
>#if fgetc(fopen("./test.txt","r+"))=='a'
関数呼び出しはできないでしょう。
# 呼び出しできてもクローズしていませんし…。
そうなったら、既にプリプロセッサのお仕事ではありませんし。
#include "./test.txt"
で、ファイルの内容を読み込むことは可能です。
ので、./test.txtに
#define VARIABLE 'a'
とか記入しておけば、その内容を取り込むことは可能です。
もちろん、反映できるのはプリプロセッサが動作したときなので……
実行ファイルができあがった後で./test.txtの内容を書き換えて切り替えできるようにしよう。
そうすれば、再ビルドする手間掛からなくていいぢゃん!!
みたいなコトはできません。
# ので……普通にソースファイル上にdefine定義するのとあまり違いがありません。
No.3
- 回答日時:
ちなみに…たいていのコンパイラはコマンドラインでシンボル定義とか可能かと思われますので、
環境によってはMakefileなどでテキストファイルの内容でdefine定義を切り替える。
というコトは可能かも知れません。
# Visual Studioでそういうコトが可能かは不明ですが…
UNIX系であれば、configureスクリプトでそういう処理しながらMakefileを生成する。なんてことをしていても不思議ではない…でしょう。
おそらく。
# /etc/redhat-releaseの内容でパス名変えたりとか。
回答ありがとうございます。
ファイル内容によって自動設定することを目的としていたので、
makefileでも難しそうです。手動で定義しなおすしかないようですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
ハードディスク上書き用大容量...
-
txtとはWordでなんですか?
-
テキスト(txt)→ワード(docx)へ...
-
バッチでファイルの内容の比較...
-
UWSCでファイルを開く方法
-
特定の文字を含まないファイル...
-
バッチファイル 複数ファイル...
-
host名、IPアドレス、デフォル...
-
バッチ処理でリスト行表示空白...
-
Perlで同じフォルダにある任意...
-
cshでファイルサイズ取得
-
引数をファイル出力してバッチ...
-
テキストファイルで提出とは?
-
エクセルVBA テキストに出力、...
-
C言語でのファイルへの出力につ...
-
ExcelVBA テキストファイルUNIC...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトのエラーに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
拡張子を元に戻す
-
COPYコマンドで結合すると余計...
-
ファイルの最後に文字列挿入
-
Windowsのバッチファイルを利用...
-
txtとはWordでなんですか?
-
テキストファイルで提出とは?
-
バッチファイル 複数ファイル...
-
UWSCでテキストファイルを開い...
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
renameコマンドについて
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
エクセルの各セルの内容をそれ...
-
MS-DOSのバッチファイルの中で...
-
フルパスの中にワイルドカード...
おすすめ情報