challenge 条件を満たす行を取り除く

ファイルから1行ずつ読み込み、"#"で始まる行だけを取り除いてファイルに出力するコードを書いてください。

サンプル入力

hello!
# remove this
 # don't remove this
bye!
サンプル出力
hello!
 # don't remove this
bye!

Posted feedbacks - C

久々にC言語。エラー処理をたくさん書かないといけなかったのがC言語なんだよな。Perlはor dieですむから困る。 ……すんません、ろくに例外処理してません。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>

#define MAXLENGTH 80

int main( int argc, char *argv[] )
{
        FILE *fh_input;
        FILE *fh_output;

        char line[MAXLENGTH];

        if ( argc != 3 ) {
                printf( "%s <input> <output>\n", argv[0] );
                exit(1);
        }

        fh_input = fopen( argv[1], "r" );
        if( fh_input == NULL ) {
                printf( "%s: file open error!\n", argv[1] );
                exit(1);
        }

        fh_output = fopen( argv[2], "w" );
        if( fh_output == NULL ) {
                printf( "%s: file open error!\n", argv[2] );
                exit(1);
        }

        while( fgets( line, MAXLENGTH, fh_input ) != NULL ) {
                if( line[0] != '#' ) {
                        fputs( line, fh_output );
                }
        }

        fclose( fh_output );
        fclose( fh_input );

        exit(0);
}

Index

Feed

Other

Link

Pathtraq

loading...