• ベストアンサー

ファイルの最終行にデータを追加する方法について

現在、Visual C++2008 Express Editionを用いて 既存のファイルの最終行にデータを追加する簡単なプログラムを作成しています。 しかし、その書き方(ソースコード)がわかりません。 どなたか教えてください。

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

  • ベストアンサー
回答No.1

#include <stdio.h> /* foo.datの末尾に"appended"を追加 */ int main() { FILE* fp = fopen("foo.dat","a"); fprintf(fp,"appended"); fclose(fp); return 0; }

関連するQ&A

  • VC++でソースファイルに2つのデータを作る場合。

    Microsoft Visual C++ 2008 Express Editionというコンパイラを使っています。 新しいプロジェクトを作成すると、ソースファイル、ヘッダーファイル、リソースファイルの3つのフォルダが作成されます。 ソースファイルのフォルダに.cppのプログラムを作成しています。 もう一つ別のプログラムを実行しようと思って、ソースファイルのフォルダにプログラムを追加して実行すると必ずエラーが出てしまいます。 エラーの内容は「1 つ以上の複数回定義されているシンボルが見つかりました。」のようです。 1つのソースファイルに2つ以上のプログラムは作れないのでしょうか?

  • Visual C++ 2008 Express Editionの使用方法について

    プログラミング超初心者です. Visual C++ 2008 Express Editionの使用方法についての質問です. 入門書やネット情報を元に新しいプロジェクトを作成しました.その中に新しい項目(C++ファイル)を追加し,ソースコードを書き,デバックから「デバックなしで開始」をすればプログラムを実行できることはわかりました. 問題はここからなのです.初めに作ったファイルと別のソースファイルを作成したいときはどのようにすればよいのかがわかりません. 新しい項目の追加でC++ファイルを追加してみました.でもそれを「デバックなしで開始」しても,初めに作ったC++が実行されるされるだけで,新しく作ったファイルを実行できません. なにか間違いをしているようなのですがどのような間違いをしているのかがわかりません. 入門書等を見ても,2つ目以降のファイル作成方法が書いてありませんので,こちらで質問させていただきました. どうかよろしくお願いいたします.

  • Visual C# 2005 でMysqlサーバに接続したい

    環境は Visual Studdio 2005 Express Edition MySQL5.0 です。 データベースエクスプローラにMySQLのODBCを追加したくても ODBCデータソースアドミニストレータで追加したデータソースが反映されません。システムデータソースに追加したドライバは MySQL ODBC 3.51です. まぁ最悪、手書きでコード書いてもいいのですが、GUIを通して簡単にできるならそれに越したことはありません。また、有償のアドインも使えません。 以上説明要素で足りないとこがあれば追加します。 *既存のMySQLのデータベースをVisual C#で作ったアプリで見たり、更新したりするものを作っています。

  • テキストファイルの任意の行からのデータ書き込み

    C++Builder5.0(Professional)でテキストファイル 書き込みのプログラムを作成しています。 あるテキストファイルがあり、そのファイルの 1,2行目にはすでにテキストデータが書き込まれている ものとします。 このテキストファイルを開き、4行目から 10行目までデータを書き込むといったプログラムは どの様に作成すればよろしいでしょうか。 御回答を宜しくお願いします。

  • 1行ずつではなくまとめてファイル出力したいのですが

    Cは初心者です。というかプログラム自体ずぶの素人です。 パラメーター1パラメーター2パラメーター3を使って計算をし、結果として パラメーター1,パラメーター2,パラメーター3,数値2,数値3,数値4,数値5,数値6,数値7 というような形式で1行ファイル出力をし、 パラメーターを変えて(for文)またファイル出力をし、とかなりの回数繰り返す計算をしております。 (元々AWKで動いていた自作プログラムの移植です) 現在、 #include <fstream> ofstream file1("c:\\data.csv",ios_base::app |ios_base::out) ; file1 << parameter1 << "," << parameter2 << ~中略~ << "," << value1 << "," << value2 << "," << ~中略~ "\n" ; のようにファイル出力しているのですが、ファイルサイズがでかくなってくると、もの凄く遅くなります。 ひょっとして、ファイルオープン→ファイル末尾まで開く→1行書き込む→ファイルクローズ→ の繰り返しで、だからファイルが大きくなると遅くなるのではないかという気がしているのですが、 何行も(1000行とか1万行とか5万行とか)一気に出力する方法はないでしょうか? まず、どうやってデータを溜め込み、次にどういう出力方法があるのか、教えていただけないでしょうか。 parameter1~Value7(本当は倍以上ありますが)をそれぞれ全て配列にし、ファイルをオープンして閉じずにfor文で書き込む、なんてのも考えたのですが、どうしたら良いか判らずギブアップです。 もうちょっとスマートに、file1のところを配列にするとか、file1にどんどんデータを書き加えて巨大な一文にしてしまうとか、何か方法はないでしょうか? なお、cはマイクロソフトが只で配っているVisual Studio の VisualC++ Express Editionを、よく判らないまま使用しております。 先週ダウンロードしましたので、おそらく最新版だと思います。 ポインタの辺りは、理屈は解りましたがスラスラ使いこなせるということはなく、他人のソースを見てもよく判らない状態です。 というか、どこまで書き換えて良い文字で、どこまでが標準関数(?)等の書き換えられない文字かもよく解っていないレベルです。 よろしくお願いいたします。

  • VSexpress2010で参照を追加する

    Visual Studio Express 2012 for Desktop C# で プログラミングを学習していますが、 ウェブページからコピペしてきた多くのソースコードが (using からソースのままなのに)ビルドできません。 おそらくソースコードがASPなどを 用いているから?だと思うのですが、 プロジェクト→新しいデータソースの追加→オブジェクト からSystem_Windows_Formsを参照しようとしても ".NETアセンブリへの参照を追加してください"と メッセージが出て追加できません。 そこで質問ですが、.NETアセンブリは どうやって、どのファイル?を参照に追加すればいいのでしょうか。 プログラミングについて疎く、 文章があってるかどうか わかりませんが、よろしくお願いします。

  • Visual C++ 6.0 で作成したプログラムをVisual C++ 2005 でコンパイルしたい

    visual C++ 6.0 で作成したプログラムがあります。このソースリストをVisual Studio 2005 Express Edition の Visual C++ 2005 Express Editionでコンパイルしようとしましたが、#include <Windows.h> でエラーになって先に進みません。対応したWindows.hの入手方法教えてください。 それとも、そもそも、Visual C++ 2005 Express Editionでは昔のVC++のプログラムはコンパイルできないのでしょうか?

  • ADO.Netでテキストファイルをデータソースにした場合

    Visual Studio 2008でプログラム(C#)を作っています。 ADO.Netは、データソースとして、テキストファイルを指定出来るようですが、その場合、 1. データの追加 2. データの削除 は出来るのでしょうか? どうぞよろしくお願いします。

  • VisualC++ テキストファイルなどの取り込み方

    現在、Visual C++ 2008 Express Editionを使って 入門書の「ファイルの入出力」部分を勉強中です。 そこで、読み込むべきテキストファイルを作成したまではいいのですが プロジェクトにそのファイルを追加する方法がわからずに困っています。 プロジェクト名がサンプルの場合 Visual Studio 2008\Projects\サンプル\サンプル のディレクトリにファイルをコピーすれば 問題なくファイルを読み込むことはできました。 しかし、毎度毎度自分でコピーするのは手間がかかるので Visual C++のソフト上からファイルを追加したいのですが それにはどうしたらよいでしょうか。 教えてください。

  • CSVファイルの最終行のデータを取り出したい

    PHPでCSVファイルのデータを取り込もうとしています。 全てのデータを表示させるのであれば、「while」などを使って書くのが一般的かと思うのですが、 最終行のデータ(「,」で区切られた最も左のフィールド)だけを取り出したいので、 以下のように書いてみました。 <?php $file = fopen("hoge.csv","a+"); $nakami = fgetcsv ($file, 1000, ","); echo $nakami[0]; fclose($file); ?> 「fopen」のmodeについて、「r」にすれば先頭から読み込まれ、 「a+」もしくは「ab+」ならばファイルの終わりにポインタが来る・・・ と色々なマニュアルに書かれていましたので、上記のようにしてみたのですが、 $nakami[0]で表示されるのは、1行目の最左列のデータになってしまいます。 1)このやり方(modeの設定)では最終行のデータ取得は不可能なのか 2)どのようなやり方なら最終行のデータ(のみ)は取得できるのか お知恵をお借りできれば幸いです。 よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう