人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C言語で次のような事は可能でしょうか

長いテキストファイルを
1行読み込み、その1行を削除(空白で埋めるも可)
そして次の行・・。
をファイルの最後まで繰り返す。

●質問者: yamazakiis
●カテゴリ:コンピュータ
✍キーワード:C言語 テキスト ファイル
○ 状態 :終了
└ 回答数 : 11/11件

▽最新の回答へ

1 ● ku__ra__ge
●0ポイント

http://www.kumei.ne.jp/c_lang/index_c.html

?b??????INDEX

可能です。

上のページの第18章あたりを参考にしてください。


2 ● POPO
●0ポイント

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/truncate.2.htm...

Manpage of TRUNCATE

結局、ファイル自体は残したままファイルの中身を全部削除したいということでしょうか?


であれば、UNIX系であれば、

truncate(”aaa”,0);

とかで、aaaというファイルの中身は全部消えます。


truncate()が使えなければ、


FILE *fp = fopen(”aaa”,”w”);

fclose(fp);

とかで、上書きモードでopenしてすぐにcloseすればできるような気がしますが。


やりたいこと自体が違うのかな?

◎質問者からの返答

1行づつ読み込んで処理をしたいのです。

そして読み込んだ行がわかる様に、その行を削除(もしくは空白で埋める)をしたいと思っています。


3 ● sho1008
●0ポイント

http://www.hatena.ne.jp/1120842807#

人力検索はてな - C言語で次のような事は可能でしょうか 長いテキストファイルを 1行読み込み、その1行を削除(空白で埋めるも可) そして次の行・・。 をファイルの最後まで繰り返す。..

空白で埋めるも可であるなら、

1行読み込んだバッファにmemsetなどで

空白入れて書き込むとか。

NULLセットして書き込むとかで良いのでは?

C++ならreplaceしちゃうとかで。

◎質問者からの返答

そのやり方が分からないんですよね。

サンプルソースとかある場所分かりませんかねぇ


4 ● akihatehiro
●0ポイント

http://www.hoge.com/

Hoge Lumber Company

ダミーです。

行を削除というのは、行の先頭に改行があるようにすることですよね。

だったら

getc なり fgetc かなんか使って行の数を数えて

同じ数だけ改行を出力すればよいのではないでしょうか。

◎質問者からの返答

下記のソースでテキストファイルが空白に置き換えられません。

理由が分かる方いましたら、よろしくお願いします。

FILE * fp = fopen(”C:¥¥0.txt”,”r+”);

char szStrRcpt[1024];

while( fgets(szStrRcpt, sizeof(szStrRcpt), fp ) )

{

memset(szStrRcpt,’¥0’, sizeof(szStrRcpt));

fputs(szStrRcpt, fp);

}

fclose(fp);

return;


5 ● YasudaS
●0ポイント

http://www.google.co.jp/search?num=50&hl=ja&newwindow=1&...

Google

ftell()で今読む所を得て、編集。rewind(),fseek()して、fwrite()、またfseek()で出来ますが...


1-5件表示/11件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ