• ベストアンサー

C++ でファイルを消す関数(??)

C++ でコンソールアプリケーションを作っています。 “Hello, world!” から数ヶ月しか経過していない,初心者です。 C++ で計算プログラムを組んでいて,計算の途中結果を一時的に保存するため ofstream ofs(計算結果を一時的に保存するファイル); のように,一時的に計算結果を保存するテキストファイルを生成しています。 計算を実行後には,このファイルには(ファイル管理の簡素化のため)消えておいてほしいのですが, C++ に特定のファイルを消す関数(?)などは,あるのでしょうか? 初心者につき,変な質問をしているかもしれませんが,ご教授いただければ幸いです。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

既に回答が出ているように、<cstdio>ヘッダで宣言されているstd::remove関数がそれにあたります。 ところで、大きなお世話かも知れませんが、一時的なワーク領域に使うだけであれば、よほど大きなデータでない限り、std::ostringstreamを使って文字列に格納した方が扱いやすいと思います。

k1220011_2005
質問者

お礼

回答くださり,ありがとうございます。

その他の回答 (1)

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

unlink(char *pathname) や remove(char *pathname) は使えませんでしょうか?

k1220011_2005
質問者

お礼

回答くださり,ありがとうございます。 unlink() や remove() は知らない関数でしたので,大変,助かりました。 また C の文字列を引数にとらねばらなないことも教えてくださり,ありがとうございました。

関連するQ&A

  • C++でのファイル書き込み

    現在C++でHTMLのファイルを作成しようとしているのですが ファイルに書き込むのは std::ofstream ofs( "test.txt", std::ios::out | std::ios::app ); ofs << "append test" << std::endl; という風な書き方でよいとおもうのですが、 HTMLファイルには <A HREF="index.html">back</A> のように""が含まれるのでこれをそのまま上の分に入れようとしてもおかしくなってしまいます なにかよい方法はないでしょうか?

  • C++でofstreamに空白を含む文字列を<<するとそれ以降の文字が書き込まれない

    以下のようなテストプログラムを書いたのですが、 期待した動作になりません。 #include <fstream> int main() { std::ofstream ofs("C:/test.txt"); char moji[] = "aaa bbb"; ofs << moji << std::flush; ofs.close(); } テキストファイルにはaaaしか書き込まれず、bbbが無視されています。 ifstreamが空白文字までで処理をとめるのは知っていましたが、 ofstreamが書き込む際も同じなのでしょうか。 空白を含む文字列を書き込むにはどうすればよいでしょうか? よろしくお願いいたします。

  • C++コンソールアプリケーションでの動画ファイルの取り扱いについて

    現在C++のコンソールアプリケーションにおいて 動画ファイルの生成を行おうと思っています。 各フレームの画像をビットマップ形式で保持しており、 これを映像として書き出したいのです。 少し調べたところ、 MFCなどを使うものに関する説明は少しあったのですが、 標準C++用のAVI生成ライブラリなどがありましたら 教えていただきたいです。 動画ファイル形式はAVIには限定しません。 一般的なものであればなんでもいいです。 コンソールではやめといたほうがいいというのであれば また他の方法を考えます。

  • C++でのファイル入出力について

    C++で計算したデータを何かファイルに保存しようとしています。 #include<iostream> #include<fstream> using namespace std; int main() { ofstream fout("test0.txt");     //ここで処理をしてファイルに書き込む作業を行う fout.close(); return 0; } 以上のようなサンプルがあったすると、ファイルはカレントディレクトリ に保存されますよね。 そのファイルの保存先を指定するようにするにはどうしたらいいですか? よろしくお願いします。

  • 複数の関数から一つのファイルへ書き出していく方法について

    複数の関数から一つのファイルへ書き出していきたいのですが、それぞれの関数でそのファイルを開きなおしていると前に書き出したものが消えてしまいますよね。 そこで、 void function(ofstream &fout) のようにofstreamを関数の引数とすればよいということをどこかで聞いたのでやってみたのですが、"定義されていない識別子です"というエラーがでてしまいます。この方法が間違っているのでしょうか?間違っているなら他に良い方法はありませんか?教えてください。 コンパイラは、Visual C++を使用しています。プログラミングは初心者です。よろしくお願いします。

  • Win32 コンソールアプリケーション

    VisualC++ 2010 Express を利用して、C++を学んでいます。 Win32 コンソールアプリケーション でプロジェクトを作成しました。 最初に用意されたテンプレート(?)に、  printf("%s\n", "Hello World!"); を追加して、実行してみたのですが、「Hello World!」がどこにも表示されませんでした。 ソリューション(プロジェクト?)が保存されているフォルダへ移動して、 exe形式の実行ファイルがあったので、これを実行してみましたが、すぐに画面が消えてしまいます。 コマンドプロンプトを起動して、↑のexeを実行したところ、「Hello World!」が表示されました。 ★ いちいちこの手順を踏むのが非常に面倒なのですが、Visual C++ 内で完結できないでしょうか? 以上、よろしくお願いします。

  • C++じゃ無理です。

    C++2010 評価版を使っているのですが、アプリケーションにHello World!と表示したいのですが、やり方がわかりません 早く教えて下さい。

  • C#で、Cのファイルポインタ(?)のような機能

    プログラムの初心者、かつ、C#の初心者です。  C言語では、ファイルポインタを関数から関数へ渡すことができると思うのですが、C# ではどのようにすれば良いのですか? C#を使っていますが、C言語のような構造でプログラムを書いています。  やりたいことは、ファイルポインタを渡しながら、各関数で、ドカドカと計算結果をファイル内に書いていくということです。  宜しくお願いいたします。

  • C++のファイルに対する配列データの読み書き

    C++で配列c[0],c[1],....の値をファイルに出力すると、 1.2 3.2 5.1 8.2 -9.1 のようになると思います(この例は配列のサイズが5)。実際は100以上の配列にします。 プログラム的にはだいたい下のようになると思っています。 std::ofstream ofs( "test.txt" ); ofs << ここで並びの出力をするはず? << std::endl; 意味は、出力ファイルの定義とストリームによる書き出し?と改行だと思います。 並びの出力ですから、ループでよいのでしょうか。プログラム作法が分からないので教えて頂きたいのですが。データの区切りは空白で、できれば書く数値のフォーマットは揃えたいですが。 次に、読み込むときはどうなるでしょうか。 std::ifstream ifs( "test.txt" ); std::string str; ifs >> str; std::cout << str << std::endl; これだと読んだデータを画面表示して終わりです。配列に読み込む方法なのですが。 よろしくお願いします。

  • .NET C++ 2002でのダイアログベースアプリケーションの作り方

    .NET C++ 2002のマネージコードでダイアログベースのアプリケーションを作ろうと考えています。手始めに自動で作成される空のアプリケーションを実行すると、コンソールアプリケーションのようになってしまいます(Hello Worldを表示して終了)。 <手順> (1) Visual Studio.NET 2002を開き、新規プロジェクトの作成で、「Managed C++アプリケーション」を選択 (2) 自動的に作成されたアプリケーションをビルド・実行 VB.NETやC#.NETでは「WINDOWSアプリケーション」を選択すると、ダイアログベースのアプリケーションを作れますが、同様のことをC++.NETで行うには、どうすればよいのでしょうか。