
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
http://www.dab.hi-ho.ne.jp/sasa/biboroku/misc/co …
とか
http://emoken.net/blog2/item_498.html
とかを適当にいじれば出来るかと。
もっと適当で良いのなら、
コマンドラインで
grep -e '/\*.*\*/' -e '//.*$' *.cpp > log.txt
とか
http://emoken.net/blog2/item_498.html
とかを適当にいじれば出来るかと。
もっと適当で良いのなら、
コマンドラインで
grep -e '/\*.*\*/' -e '//.*$' *.cpp > log.txt
No.2
- 回答日時:
教えてくれと言われても、言われた方は
・#defineにコメントが含まれていたらどうしようか
・printfのテキスト部分にコメントではないがコメントのように見える部分が含まれていたらどうしようとか
・複数行にまたがるコメントもあるのかな
・ヘッダファイルにコメントが含まれているかもしれない
・ソースが不正でコメントの終了がない場合があるかも知れない
等々
色々と考えてしまうものです。
コメントがどのように書かれているかによってごく簡単だったり、とっても難しくなったりすると思います。
一番確実なやり方はC言語のコンパイラの構文解析に則ってコメントを抽出することだと思います。
No.1
- 回答日時:
コードまで書くつもりはありませんが……まぁ、どんな処理にすればいいのか…という提案程度なら。
1)コメントを出力するファイルをオープンする。(テキストモード・追記かな)
2)対象のソースファイルをテキストモードでオープンする。
3)コメント中判定のフラグ変数を用意し、非コメント中状態に設定する。(bool型でfalseとか)
4)ソースファイルを1行読み込む。読み込みする行がなくなったら8)へ。
5)読み込んだ行に"//"があるか検索する。
コメント中判定フラグが偽であった場合は//以降をテキストファイルに書き出し、4)へ戻る。
コメント中判定フラグが真だったらスルーして6-a)へ。
6-a)コメント中判定フラグが真なら読み込んだ行に"*/"があるか検索する。
ない場合は1行丸ごとテキストファイルに書き出し。
あった場合は"*/"の直後までテキストファイルに書き出してコメント中判定フラグを偽に設定。
"*/"の直後から"/*"があるか検索して…6-b)の後半の処理を実施。
6-b)コメント中判定フラグが偽なら読み込んだ行に"/*"があるか検索する。
ない場合は7)へ。
あった場合は"/*"の直後から"*/"を検索。
"*/"があった場合は、"/*"の直前から"*/"の直後までをテキストファイルに書き出し。"*/"の直後から"/*"を検索して同じような処理を。
"*/"がない場合は、"/*"の直前から行の最後までをテキストファイルに書き出してコメント中判定フラグを真に設定。
7)4)へ戻る。
8)対象のソースファイルをクローズ。
9)次のソースファイルをテキストモードでオープンして3)へ
オープンするソースファイルがない場合は10)へ
10)テキストファイルをクローズ。
ってな感じでしょうか。
1行に/*~*/のコメントが複数あった場合の処理とかいろいろ気をつけないとなりませんが。(6-aと6-bで軽く書いていたりはしますけどねぇ)
正規表現が使える言語使って処理した方が楽かも知れませんけどね……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) Pythonの問題です。 1 2022/08/02 12:39
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 malloc 関数を使って教えてください。 入出力例1 3 2022/07/21 09:36
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Windows 10 Windows10の回復環境 2 2023/02/03 19:13
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイル固定長データ...
-
ExcelのVBAコードについて教え...
-
ATTファイルってどうやって開け...
-
既存のテキストファイルを開く方法
-
テキストファイルの一部分を抽...
-
RGBデータからBMP画像へ
-
【至急:C言語】cppファイルやh...
-
ファイル変換
-
Zbarというソフトについて
-
VBSでテキストファイルの2行目...
-
Excel VBAが徐々に遅くなる
-
[VB.NET] 処理の高速化を行いた...
-
COBOL サイン(符号)無しパッ...
-
テキストファイル内容の、16進...
-
STM32 Nucleo-F446REでデータを...
-
テキストファイルのログをExcel...
-
C言語でテキストファイルをバイ...
-
メールの添付ファイル
-
VB(VBA)で、バイナリデータを使...
-
accessでクエリをExcelにエクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
VB(VBA)で、バイナリデータを使...
-
テキストファイル固定長データ...
-
テキストファイル内容の、16進...
-
WORDのVBAで差し込み印刷時、デ...
-
VBSでテキストファイルの2行目...
-
Excel VBAが徐々に遅くなる
-
StreamReaderで読み込んだファ...
-
ファイル変換
-
[VB.NET] 処理の高速化を行いた...
-
テキストファイルをSQLServerデ...
-
TXTファイルデーターをEX...
-
バイナリファイルの区別
-
Zbarというソフトについて
-
テキストファイルの特定行の削...
-
バイナリデータの中からMidのよ...
-
エクセルVBAでメールの自動作成...
-
UTF-8とASCIIコードにおける互...
おすすめ情報