はじめまして。c言語の超初心者です。
以下のようなtxtデータの第2,3行を
c言語を使って削除したいのですが方法がわかりません。
何卒ご教授願います。
=== txt データ例 ==============
%keisanrei
# x x*x
-2 4
-1 1
0 0
1 1
2 4
=======終了===================
( 第2.3行が2次元配列に読み込みさせる場合に
邪魔なので、プログラム上で削除したいと考えています。
もしくは、第2.3行のみ除いてデータの部分のみ2次元配列に
読み込めればいいのでしょうが、これはもっと難しそう・・・)
cプログラム : データの特定の行を削除
Re: cプログラム : データの特定の行を削除
fgetsを使って1行ずつ読んでいくことにして、第2、第3行の時だけは、読み込んだデータを捨てるという方法ではダメでしょうか?
そして読み込んだデータから、得たい値のみを抽出するという感じです。
流れとしては、
①バッファに読み込んだデータを格納
②そのデータが2,3行目だったらそのデータは棄却
③それ以降のデータなら、バッファからスペースや改行を条件としてバッファをそれぞれのデータに区切る
こんな感じで出来ると思います。
そして読み込んだデータから、得たい値のみを抽出するという感じです。
流れとしては、
①バッファに読み込んだデータを格納
②そのデータが2,3行目だったらそのデータは棄却
③それ以降のデータなら、バッファからスペースや改行を条件としてバッファをそれぞれのデータに区切る
こんな感じで出来ると思います。
Re: cプログラム : データの特定の行を削除
>c言語を使って削除したいのですが
どういう意味なのかわかりません。ファイルに書き戻したいということなのでしょうか?
ぬっちさんが言われるように、読み込んでも、使わなければよいということだけだと思うのですが。
どういう意味なのかわかりません。ファイルに書き戻したいということなのでしょうか?
ぬっちさんが言われるように、読み込んでも、使わなければよいということだけだと思うのですが。
non
Re: cプログラム : データの特定の行を削除
ぬっち様
返信ありがとうございます。
大変参考になりました。
しかしながら、まことに申し訳ありませんが、私は本当に超初心者故、
ぬっち様の流れを具体的にどうプログラム化すればよいのか?
見当がつきません。
=====================================================
fp= fopen("keisanrei.txt","r");
for(j=1;j<=5;j++){
for(i=1;i<=2;i++){
fscanf(fp, "%lf",&test[j]) != EOF;}
fclose(fp);
======================================================
私は上のようにプログラムを書いてみて、何も配列へ読み込めてないと
泣いておりました。
プログラム文のポイントのみでよいので
fgetsを使ってバッファにデータを格納するところから
何卒ご教授願います。
返信ありがとうございます。
大変参考になりました。
しかしながら、まことに申し訳ありませんが、私は本当に超初心者故、
ぬっち様の流れを具体的にどうプログラム化すればよいのか?
見当がつきません。
=====================================================
fp= fopen("keisanrei.txt","r");
for(j=1;j<=5;j++){
for(i=1;i<=2;i++){
fscanf(fp, "%lf",&test[j]) != EOF;}
fclose(fp);
======================================================
私は上のようにプログラムを書いてみて、何も配列へ読み込めてないと
泣いておりました。
プログラム文のポイントのみでよいので
fgetsを使ってバッファにデータを格納するところから
何卒ご教授願います。
ぬっち さんが書きました:fgetsを使って1行ずつ読んでいくことにして、第2、第3行の時だけは、読み込んだデータを捨てるという方法ではダメでしょうか?
そして読み込んだデータから、得たい値のみを抽出するという感じです。
流れとしては、
①バッファに読み込んだデータを格納
②そのデータが2,3行目だったらそのデータは棄却
③それ以降のデータなら、バッファからスペースや改行を条件としてバッファをそれぞれのデータに区切る
こんな感じで出来ると思います。
Re: cプログラム : データの特定の行を削除
読み込んだ行を削除の前に少し気になることが…
ファイル読み込みの前に配列の理解が少し怪しいように見えます。
[追記]※C言語の配列の添え字は0開始です
上記部分だけではなく、一度作成したプログラムを全部貼ってみていただけませんか?
ファイル読み込みの前に配列の理解が少し怪しいように見えます。
[追記]※C言語の配列の添え字は0開始です
=====================================================
fp= fopen("keisanrei.txt","r");
for(j=1;j<=5;j++){
for(i=1;i<=2;i++){
fscanf(fp, "%lf",&test[j]) != EOF;}
fclose(fp);
======================================================
私は上のようにプログラムを書いてみて、何も配列へ読み込めてないと
泣いておりました。
上記部分だけではなく、一度作成したプログラムを全部貼ってみていただけませんか?