←検索窓の楽しみ方
  ショッピングモール  掲示板ランキング


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

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

 詳しくはこちら



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

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


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

No.3518

テキストファイルへの番号追加
投稿者---sim(2005/03/01 19:33:26)


初めましてsimです

テキストファイルに行番号を追加したいのですが、うまくいきません。
どなたかアドバイスをお願いします。

#include <stdio.h>
#include <stdlib.h>

#define SIZE 100

int main(int argc, char *argv[])
{
    FILE *fp;
    int no = 1;
    char buffer[SIZE];

    /*エラーチェック*/
    if ( argc < 2 )
    {
        printf("使い方: line ファイル名\n");
        exit(1);
    }

    fp = fopen( argv[1], "r+" );
    if ( fp == NULL )
    {
        printf( "ファイルが開けない\n" );
        exit(1);
    }

    while ( fgets(buffer, SIZE, fp) != NULL )
    {
        fprintf( fp, "%3d: %s", no, buffer );
        no++;
    }
    fclose(fp);
    return 0;
}





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:テキストファイルへの番号追加 3519 あかま 2005/03/01 20:03:18
<子記事> Re:テキストファイルへの番号追加 3521 ねこやろう 2005/03/01 21:40:40


No.3519

Re:テキストファイルへの番号追加
投稿者---あかま(2005/03/01 20:03:18)


読み出しているファイルと書き出しているファイルが同じなのが問題です。
別のファイルに書き出して、元のファイル名にリネームするなどの必要があります。


この投稿にコメントする

削除パスワード

No.3521

Re:テキストファイルへの番号追加
投稿者---ねこやろう(2005/03/01 21:40:40)


>初めましてsimです
>
>テキストファイルに行番号を追加したいのですが、うまくいきません。
>どなたかアドバイスをお願いします。

テストしてにぇ。
普通こんなやりかたしない。
エラーも考えてない。
「こんな方法でもできなくはない」ってゆう悪い見本。
まっ、わしみたいな悪いプログラマにゃなるにゃ。

#include <stdio.h>
#include <stdlib.h>

#define SIZE 100

int main(int argc, char *argv[])
{
    int no;
    char buffer[SIZE];
    FILE *r_fp, *w_fp;

    if (argc < 2) {
        printf("使い方: line ファイル名\n");
        exit(1);
    }

    r_fp = fopen(argv[1], "r");
    w_fp = fopen("tmp.dat", "w");
    no = 1;
    while (fgets(buffer, sizeof(buffer), r_fp) != NULL) {
        fprintf(w_fp, "%.3d: %s", no, buffer );
        no++;
    }
    fclose(r_fp);
    fclose(w_fp);

    r_fp = fopen("tmp.dat", "r");
    w_fp = fopen(argv[1], "w");
    while (fgets(buffer, sizeof(buffer), r_fp) != NULL) {
        fprintf(w_fp, "%s", buffer );
    }
    fclose(r_fp);
    fclose(w_fp);
    remove("tmp.dat");

    exit(0);
}




この投稿にコメントする

削除パスワード

No.3524

Re:テキストファイルへの番号追加
投稿者---sim(2005/03/02 06:07:47)


アドバイス、ありがとうございます

早速試してみたら上手くいきました。
これから、エラー時の対処なども付け加えていきたいと思います。
また、質問させていただくと思いますが、よろしくお願いします。


この投稿にコメントする

削除パスワード

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




掲示板提供:Real Integrity