C言語による「テキストファイルの読み書き(fprintf)」について
C言語による「テキストファイルの読み書き(fprintf)」について質問です
ずぶの初心者ですが、既知のファイルの1行目に指定した文字列を付加させるプログラムを作りたいと思っています。
以下のように作りました。
------------------------------------------------------------
#include <stdio.h>
int main(void)
{
FILE *fp;
fp = fopen("test.csv","r+");
fprintf(fp,"コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56\n");
fclose(fp);
return 0;
}
------------------------------------------------------------
このとき「test.csv」の内容が以下のようであったとします。(容量は1MBくらいです。)
001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
~(略)
5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
この状態でプログラムをコンパイルして実行すると、「test.csv」の内容が以下のようになってしまいます。(一行目が消える)
AAA,BBB,CCC,DDD,EEE
002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
~(略)
5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
またcsvの行が増える度に妙な挙動になっていきます・・・(一行あいたり、先頭行が5行ほど消えたり)
希望する動作としては
コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56
001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
~(略)
5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj
のようになるようにしたいのですがどのようにすればよいのでしょうか。
よろしくお願いします。
(使用ソフト:Borland C++ Compiler, Cpad)
参考にしたサイトの項目:http://homepage3.nifty.com/mmgames/c_guide/17-01.html
補足
早速のご回答ありがとうございます。 (テーブル:AAA) aaa bbb ccc ddd eee ggg hhh iii ------------------------------- 111 111 111 111 111 111 111 ii1 112 112 112 112 112 112 111 ii2 112 113 113 113 113 113 111 ii3 114 114 114 114 114 114 111 ii4 114 114 114 114 114 114 112 ii5 114 115 115 114 114 115 111 ii6 114 115 115 114 114 115 112 ii7 116 116 116 116 116 116 111 ii8 116 116 116 116 116 116 112 ii9 116 116 116 116 116 117 111 ii0 116 116 116 116 116 117 112 ii1 118 118 118 118 118 118 118 ii2 のようにテーブル:AAAにiiiを追加し、 aaa bbb ccc ddd eee ggg hhh iii ------------------------------- 112 112 112 112 112 112 111 ii2 112 113 113 113 113 113 111 ii3 114 114 114 114 114 114 111 ii4 114 115 115 114 114 115 111 ii6 を抽出する場合(条件にないiiiも抽出する)も、 上記のSQLで可能でしょうか? よろしくお願いします。