• ベストアンサー

CでのCUIプログラミング 指定したファイルを生成する

Visual C++でのCUIプログラミングをしています。 コマンドラインで文字を入力してもらうとその名前のバイナリファイルが生成される様にしたいのですが、どのようにプログラムを作ればいいのでしょうか? 「aaaa」と入力すると「aaaa.bin」というバイナリファイルが生成されるというプログラムを考えています。バイナリファイル名を入力する際に拡張子の入力が必要であれば「aaaa.bin」と入力してもらう形になっても構いません。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ユーザーからの入力には scanf または getsなどで取り込みます 文字列の中に 指定文字列があるか検査するにはstrstrを使います 大文字小文字変換は _strlwr 小文字大文字変換は _strupr 文字列の連結は strcatを使います ファイルI/Oは fopen、fputc、fcloseなどを使います  char buf[256];  FILE* fp;  gets( buf );  if ( strstr( _strlwr( buf ), ".bin") == NULL ) {   strcat( buf, ".bin" );  }  fp = fopen( buf, "wb" );  if ( fp != NULL ) {   // 出力処理   fclose( fp );  } といった具合でしょう ...

ikepan
質問者

お礼

ご返答ありがとうございます。 ファイルをオープンする時に指定した名前のファイルがない場合、自動で生成されるとは知りませんでした。そして関数の簡単な説明や大文字小文字を判定する細かい箇所までのソースを記述していただき、とても理解し易く勉強になりました。

その他の回答 (1)

  • yonfa
  • ベストアンサー率52% (22/42)
回答No.2

もしShell APIを使ってよいのでしたらPathRenameExtension()が便利かと思います。 #include "shlwapi.h" PathRenameExtension(fileName, ".bin"); 拡張子がなければ".bin"を付けてくれます。 すでに".bin"が付いていればそのままです。 別の拡張子が付いていた場合には".bin"に置き換えてくれます。 ただし、"a.txt"と入力されて"a.txt.bin"としたい場合は、 別途考慮が必要となります。

ikepan
質問者

お礼

ご返答ありがとうございます。 簡単な説明をしていただき、とても理解できました。

関連するQ&A

  • CUI環境でのCプログラム ランダムアクセスが分からない

    CUI環境でのCプログラムを作っています。 data.txtファイルの末尾に文字を追加させるプログラムを作っています。 ---data.txtの中身------- あああ いいいいい うううううううう ええ ------------------------ このdataファイルの末尾にコマンドプロンプトから文字を追加させるには、ランダムアクセスを使えばいいと思うんですが、どのようなプログラムにすれば良いのか分かりません。ランダムアクセスはバイナリファイルでしか使えないのでしょうか?

  • visual c++ コマンドラインから読む方法

    学校でプログラミングを習っているため家でもと思い学校で使っているterapad、teratermを落としてみました。 しかしいざ使ってみるとteratermはパソコン1台ではどうしようもないのだと知りました。 そこでもともとこのパソコンに入っているvisual c++をつかってみようと思いました。 そこで問題が生じたのが、 visual c++だとコマンドラインからの入力はどうすればいいのでしょうか? scanfだったり、ファイル系のプログラムでコマンドラインからファイルの名前を預かったり、 どうすればteratermのようにコマンドラインからの受取ができるのか教えてください。

  • ファイルをコマンドラインから生成

    symfonyのプロジェクト、アプリケーション等をコマンドラインから作るのですが、コマンドラインから作られたファイルの文字コードがS-JISになってしまい、うまく動作してくれません。symfonyに限らず何でもそうだと思うのですが、コマンドラインからファイルを作る場合、その生成されるファイルの文字コードを指定するにはどうしたらよいのでしょうか?よろしくお願いいたします。

  • Visual C++からftpを使う

    ftpを使って他のPCと通信するプログラムをVisual C++を使って書こうとしています。(相手側PCはftpを拡張していろいろな拡張コマンドを持っています。よって、ftpのコマンドはファイル転送に限られません。)この場合、基本的にどのような形でプログラミングすればいいのでしょうか? 例えば、下の1や2の方法になるのかなと考えてます。 1.WinSockを使ってTCPで相手側PCとセッションを張り、それ以降はftpのコマンドをプログラムから直接送って、リターンも直接解釈するようなプログラムとする。 2.MFCの中にはftpを扱うためのクラスが用意されているのでそれを使う。 ネットワークプログラミングは初心者です。どのような方法が良いか教えてください。また、良いサンプル・コードがありましたらご紹介ください。よろしくお願いします。

  • 64ビット コマンドライン Cプログラミング

    私の環境は以下のとおりです CPU x6800 メモリ 8GB Vista 64 sp1 Visual studio 2005 やりたいことは、コマンドプロンプト[ > ] で 大きな配列 char dem[1000][1000][2000] を使うCプログラムを作成し使用すること。 質問したいことは、 コマンドラインの環境設定(PATH: bin lib include) コンパイラ リンカ の/オプション はどのように設定したらよいのでしょうか。 現状は work.c のコンパイル+リンク で work.exe はエラーなく成功するのですが 実行すると、{ work.exeは有効な win32 アプリケーションではありません。} というエラーが出て実行できません。 配列の要素を2000->1000にすればもちろんエラーは出ません。 なおこのときのコマンドプロンプトは  Visual Studio 2005 x64 Win64 コマンド プロンプト PATH は次のようになっています。 PATH=C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\amd64;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin\win64\amd64;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\bin;  C:\Windows\Microsoft.NET\Framework64\v2.0.50727;  C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCPackages;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools;  C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\bin;  C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin;  C:\Windows\system32;C:\Windows;  C:\Windows\System32\Wbem;  C:\Windows\System32\WindowsPowerShell\v1.0\ 先達のご教示をお願いいたします。

  • CUIとGUIでの言語の使い分け

    よろしくお願い致します。 Solaris10 で、 GUIは日本語環境で行い、CUIは文字化けするので 英語環境でのような使い分けって出来るのでしょうか。 その場合の設定はどこなのでしょうか・・。 (GUIの中のpromptは日本語文字化けしてないのですが、 CUIだと、文字化けするので英語バージョンに戻したいです) また、コマンドライン の /.PRFILEを書き換えれば#の前部分を かえれるようですが、このファイルはいずこ?状態です。 よろしくお願い致します。

  • C# Excelファイルを生成したい

    只今Excelファイルの出力について悩んでいます。 DataGridViewやListViewのデータをExcelに吐き出そうと思っています。 が、ネットで色々と調べてもよくわかりません・・・ サンプルソースは出てくるのですが、何が必要でどのようなことができるのかが いまいちピンと来なく、なかなか実現に至っていません。 やりたいことは  ・新規作成するExcelファイルの名前を任意で入力  ・保存先を指定  ・DataGridViewなどの入力データをExcelにそのまま吐き出す です。 分からないのは  ・Excelファイルを生成して保存してからデータを入れるのか(処理の順番)  ・データ挿入はどうやるのか  ・そもそもExcelファイルの生成と保存の仕方 プログラミング初心者なので、いまいち把握しきれません できれば97-2003ブックに対応したものをと思っています。 手順など分かる方、よろしくお願いします。 念のため開発環境とExcelのバージョンを・・ VisualStudio2008 C# OS:XP Excel:2007

  • CUIって?

    パソコンの画面に命令やデータを表す文字列をキーボードから入力する操作環境をCUIって言うとありました。 MS-DOSとかUNIXがこれにあたるのだそうですが、言っていることはすごく理解できるのですけど、正式名はなんと言うのでしょうか? GUIはグラフィカルユーザーインターフェイスだから、コマンドユーザーインターフェースなのかな? それと、Excelなどのデータベース関数の引数にCriteriaとありますよね。 これってなんて読むのですか? PCの用語は難しいです。 教えてください。お願いします。

  • プログラミングについて。

    プログラミング初心者です。 ちょっと興味があり、プログラミングの勉強をしています。 テキストベースでプログラムを書いていったとして、どうやってGUIベースにすればいいのでしょうか? Linux上で簡単なプログラムをつくってコンパイルしましたが、コマンドから実行するともちろんCUIでの実行になります。 どうすれば、GUIベースで作れるのでしょうか。 言語以外の知識(専用ソフトウェア等)を必要とするのですか。 それとも、htmlのように画像などを読み込ませ完成させるのでしょうか。 iPhoneアプリ製作などは XCodeなどがありますが、プログラマーとして仕事をしている人は基本的にそのような専用ソフト上でプログラミングしているのでしょうか。

  • C#で拡張子binファイルの作成

    C#で拡張子binファイルの作成方法を教えてください。 例えば、バイナリエディタでA.binというファイルを開くと、2バイト16進数表示である行の値が[4000 10C0 0000 0000 0000 0000 0000 0000]だとします。 これと同じ内容のファイル作成方法がわかりません。