AIと戦って、あなたの人生のリスク診断 >>

初めまして、C言語のプログラミングについて質問させていただきます。
ファイルからデータを読み込む所を勉強しています。
そこで、ファイルから*で書いた図形を読み込み任意の倍数(2倍に指定したら2倍に、4倍なら4倍に)に拡大して、
ファイルに出力するプログラムを作ろうとしているのですが行き詰ってしまいました。
<ファイルから読み込む図形>
******
  *
  *

<出力結果(2倍指定の場合)>
************
************
   **
   **
   **
   **
for文で回して配列を操作する様な事は分かるのですが、なかなか上手くいきません。
参考になるサイトでも良いので、ご助力ください。
よろしくお願いします。

A 回答 (1件)

下記でどうでしょう?


(インデントは全角を使用してます。)

#include <stdio.h>
FILE *fp;    /* ファイルポインタ */

#define BUFFLEN 1024

int main( int argc,char *argv[]){

    int i;
    int j;
    int k;
    int times;
    char s[BUFFLEN];

    times = atoi (argv[1]);

    if ((fp = fopen("in.txt", "r")) == NULL) {
        return 1;
    }

    /* 1行単位で読み出し */
    while (fgets(s, BUFFLEN, fp) != NULL) {
        /* 縦方向の繰り返し*/
        for ( i = 0 ; i < times ; i ++ ){
            /* 横方向の繰り返し*/
            for ( j = 0 ; s[j] != '\n' ; j ++ ){
                /* 指定回数繰り返し*/
                for ( k = 0 ; k < times ; k ++ ){
                    putchar((int)s[j]);
                }
            }
            putchar('\n');

        }
    }
    fclose(fp);

    return 0;
}
    • good
    • 0
この回答へのお礼

お早い回答ありがとうございました。
参考にさせていただき、プログラムを作成したところ無事動作しました。
ご助力ありがとうございましたm(_ _)m。

お礼日時:2007/11/08 17:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング