• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++ で DIR コマンド)

C++でMS-DOSプロンプトのdirコマンドを実行する方法

このQ&Aのポイント
  • C++でMS-DOSプロンプトのdirコマンドを実行するプログラムを作成する方法について教えてください。
  • C++で作成したプログラムによってMS-DOSプロンプトが起動し、dirコマンドが実行されるファイルを作る方法を教えてください。
  • C++のプログラムを使ってディレクトリ構造を出力し、MS-DOSプロンプトで実行する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.3

Borland系であれば、 #include <stdlib.h> #include <cstring.h> int main(int, char** argv) { *argv++; // まず自分のプログラム名はパス // 後々の独自の拡張を考えてMemcopy などは使わない string s="dir "; while (*argv) { s += *argv++; s += ' '; } system(s.c_str()); return 0; } #include <cstring.h> は #include <string> が現在は本流。

A__
質問者

お礼

ありがとうございます。 ソースを教えてもらえないと分からないんです。 教えていただいたソースはこの後試してみて 結果をまたここに書きます。

A__
質問者

補足

ソースをコンパイルして実行して、DIRの結果が表示されました。 短いけど難しいソースなんですねー。 MS-DOSプロンプトを使う原型が分かりました。 ありがとうございます。

その他の回答 (2)

回答No.2

質問の文章を読んでいて思ったのですが、 MS-DOSプロンプト=C言語 C++言語=Windowアプリ と思ってやしませんか? C++言語でコンソールアプリを書くこともできますよ。 且つ、VC++に関して言えば(VC++5では辛いけど)VC++6ではMFCを使ったコンソールアプリも簡単に出来ます。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

1.バッチファイル経由 DIRコマンドを記述したバッチファイルを作成 ShellExecuteなどで作成したバッチファイルを起動 (バッチファイルを動的に作ればどんな処理でも可能) 2.system()関数 Cの標準関数systen()にMS-DOSコマンドを引数で渡す (MS-DOSプロンプトのウィンドウは表示されない) 3.command.comを直接起動 MS-DOSコマンドはcommand.comと言うプログラムが処理するのでcommand.comに直接コマンドを渡せば実行可能。 command.comはCreateProcess()で起動。 etc... 方法はいくらでもあります。 以下,老婆心ながら… コピーならCopyFile(),ディレクトリリストならFindFirst()FindNext()FindClose()など便利なAPIがいっぱいあるのでそれを使って自前でウィンドウ描画した方がエラー処理とか楽です。 MD-DOSプロンプトでエラーが起こった時に対応するのは大事ですから。

A__
質問者

補足

ありがとうございます。 でも、教えてくれたことが理解できず、ソースは作れませんでした。

関連するQ&A