コマンドライン引数を用いたファイルコピーについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: コマンドライン引数を用いたファイルコピーについて

Re: コマンドライン引数を用いたファイルコピーについて

#3

by takaha » 6年前

ありがとうございます!無事解決しました!

Re: コマンドライン引数を用いたファイルコピーについて

#2

by Bull » 6年前

copy() 関数を修正します。

コード:

void copy(FILE *src, FILE *dst)
{
	int ch;
	while ((ch = fgetc(src)) != EOF) {		//修正
		fputc(ch, dst);
		//fflush(stdout);					//特に必要ないと思う
	}
}

コマンドライン引数を用いたファイルコピーについて

#1

by takaha » 6年前

以下のプログラムを、コマンドラインで引数を与えることで複数(または単数)のファイルをコンソール画面に出力するという目的で作りました。
実行してもファイルの中身が出力されない(バッファにたまってしまっている?)のですが、どなたか解決策を教えていただけないでしょうか。。。?

コード:

#include<stdio.h>

/*strからの入力をdstに出力*/
void copy(FILE *src,FILE *dst)
{
    int ch;
    while(ch!=fgetc(src)!=EOF){
        fputc(ch,dst);
        fflush(stdout);
    }
}

int main(int argc,char *argv[])
{
    FILE *fp;
    
    if(argc<2){
        printf("abcd\n");
        copy(stdin,stdout);   /*標準入力から標準出力へ*/
        
    }
    else{
        while(--argc>0){
            if((fp=fopen(*++argv,"r"))==NULL){                                       /*先加算することで自身の配列名はカット*/
                fprintf(stderr,"ファイル%sが正しくオープンできません。\n",*argv);    /* *argv...各配列*/
                return 1;
            }
            else{
                printf("aiou\n");
                copy(fp,stdout);              /*入力したファイルを標準出力*/
                fclose(fp);
            }
        }
    }
    return 0;
}

ページトップ