/* 【コマンドラインで指定したファイルを、ビットNOTして、別に保存する】 * 実行可能ファイルにD&Dすれば、「<元ファイル名>.out」という名で、同じ場所に作成する。 * 元ファイルには手を加えない。 **************** * 新しいファイル名(ファイルパス)には↓500文字くらいまで余裕をもたせたが大丈夫だろうか。 * */ #include #include int main(int argc, char *argv[]){ FILE *fpIN; FILE *fpOUT; int c; char newFilePath[512]; //新しいファイル名(ファイルパス) //────────────────────────────── fpIN = fopen( argv[1], "r+b"); if ( fpIN==NULL ) { printf("■エラー■ 読み込みファイルオープン失敗……"); getchar(); return 1; } //■新しいファイル名は、元の名+".out" strcpy(newFilePath, argv[1]); strcat(newFilePath, ".out"); fpOUT = fopen( newFilePath, "wb"); if ( fpOUT==NULL ) { printf("■エラー■ 書き込みファイルオープン失敗……"); getchar(); return 1; } //■読み書きループ for(;;){ c = fgetc(fpIN); if(c==EOF){break;} //putchar(c); //画面上に表示 c = ~c; //ここでビットNOT処理。 fputc(c, fpOUT); } fclose(fpIN); fclose(fpOUT); //────────────────────────────── printf("\n\n" "〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n" "出力先=%s" , newFilePath ); //getchar(); //キーウェイト return 0; }