【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18784

任意の行だけを取り出すときのfgetsの用い方
投稿者---あや(2004/12/17 16:09:21)


ファイル内の任意の行だけを取り出す方法について
例えばファイルの中身が
21 10 5.1
4.1 1.22 71
3.3 21 8.8
という風に並んでいた時に
3行目を取り出したかったら
'3'と入力することで
3.3 21 8.8
をMS-DOSに表示させたい場合
標準入力させる方法はわかるんですが、入力された数字
の行を取り出す方法について、
fopenでファイルを開けてfgetsを使って1行読み込みを
すればいいんではないかと思っているんですけど、それ(fgets)
をどう用いれば任意の行を取り出せるのかが分からないので
教えて下さい。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:任意の行だけを取り出すときのfgetsの用い方 18785 επιστημη 2004/12/17 16:37:58


No.18785

Re:任意の行だけを取り出すときのfgetsの用い方
投稿者---επιστημη(2004/12/17 16:37:58)


>標準入力させる方法はわかるんですが、入力された数字
>の行を取り出す方法について、
>fopenでファイルを開けてfgetsを使って1行読み込みを
>すればいいんではないかと思っているんですけど、それ(fgets)
>をどう用いれば任意の行を取り出せるのかが分からないので
>教えて下さい。

n-1行、空読みすればいい。




この投稿にコメントする

削除パスワード

No.18789

Re:任意の行だけを取り出すときのfgetsの用い方
投稿者---あや(2004/12/17 17:38:37)


>n-1行、空読みすればいい。

すいません、それでは分からないです。
私の今の状況をもっと具体的に話すと、
任意の行を出力させるプログラムとして
まず1行目を出力させるには

#include <stdio.h>

int main(void)
{
FILE *fp;
char filename[80],ss[80], *stat1;

printf("Input filename\n");
gets(filename);

fp = fopen("filename","r");
if ( fp == NULL ){
printf("Can't open file\n");
}

stat1 = fgets(ss, 80, fp );
puts(stat1);

fclose(fp);

return 0;
}
とすればいい事は分かってるんですけどじゃあそれ以外の行は?
というところで詰まっています。


この投稿にコメントする

削除パスワード

No.18790

Re:任意の行だけを取り出すときのfgetsの用い方
投稿者---επιστημη(2004/12/17 17:47:29)


>>n-1行、空読みすればいい。
>すいません、それでは分からないです。

なにがわからんですか?
fgetsを'無駄に'n-1回呼べば、その次のfgetsでn行目が取り出せます。



この投稿にコメントする

削除パスワード

No.18793

Re:任意の行だけを取り出すときのfgetsの用い方
投稿者---あや(2004/12/17 21:24:52)


>fgetsを'無駄に'n-1回呼べば、その次のfgetsでn行目が取り出せます。
fgetsを呼ぶ度に読み込む行が下の行に移っていくのですね。
ありがとうございました。




この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧