INDEX
C&C++ソースコード成形プログラム
むかーし作ったCのソースファイルを成形するプログラム。インデントの再配置とタブとスペースの変換の3本。スタンドアローンの開発環境で書き方のスタイルが色々混じったソースを見るのに、暇に任せて(いや暇じゃないけど)作ったやつ。
まっ、UNIXだったら indent コマンド使った方が汎用的だったりといいかなと思う。
ソースファイル インデント再配置プログラム for C/C++
1 |
/* **************************************************************** */
/* ソースファイル インデント再配置プログラム for C/C++ */
/* **************************************************************** */
/* 処理概要
指定された入力ファイルを読み込み、関数等によるインデント等を
考慮し水平タブを設定し、指定された出力ファイルに書き込む。
入力ファイルと出力ファイルが同一ファイル名、もしくは、
出力ファイル未指定の場合は、入力のファイル名に「.BAK」を付加し、
リネーム後(もしくは、コピー後)、処理を行う。
・'{','('でインデントし、'}',')'で解除する
*/
/* ********** ファイルインクルード ********** */
#include <stdio.h> /* 標準ライブラリー */
#include <stdlib.h> /* 標準ライブラリー */
#include <string.h> /* 文字処理 */
/* ********** メイン処理 ********** */
int main(int argc,char *argv[]){
FILE *fpr,*fpw; /* 入出力ファイルポインタ */
char iFileName[128]; /* 入力ファイル名 */
char oFileName[128]; /* 出力ファイル名 */
char work_mm; /* 読み書き用 */
char work_mm_old; /* 読み書き用(一世代前) */
long line_count=0L; /* 書き込み行数 */
long row_count =0L; /* 書き込み列数 */
int indent_count= 0; /* インデント階層 */
int indent_count2=0; /* インデント階層(括弧) */
int indent_loop; /* インデント処理用 */
int indent_flag0=0; /* インデントフラグ 文字 */
int indent_flag1=0; /* インデントフラグ 文字列・書式 */
int indent_flag2=0; /* インデントフラグ コメント(/o o/) */
int indent_flag3=0; /* インデントフラグ 行コメント(//) */
int skip_flag=0; /* スペースの処理飛ばしフラグ */
work_mm_old = '\0';
printf(" ===== ソースファイル インデント再配置プログラム ===== \n");
printf(" Version 0.00-030811\n");
printf(" Copyright (C) 2003 T.Imamura \n\n");
/* ***** 前処理 ***** パラメータ(引数)チェック ********** */
if(argc==2){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[1]);
}else if(argc==3){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[2]);
}else{
/* パラメタ不正:使い方の表示 */
printf(" Usage : %s InputFileName [OutputFileName]\n\n",argv[0]);
printf(" Option: InputFileName : 入力ファイル名\n");
printf(" OutputFileName : 出力ファイル名\n\n");
printf(" Attention: 出力ファイルを指定しない場合は、入力ファイルの\n");
printf(" バックアップを取り入力ファイル名で出力します。\n\n");
return(1); /* 異常終了 */
}
/* ***** 前処理 ***** 同一ファイルの処理 ********** */
if(strcmp(iFileName,oFileName)==0){
strncat(iFileName,".bak",4); /* 読み込みファイル名に.bakを追加 */
printf(" バックアップファイル(%s)\n",iFileName);
printf(" 作成します ..");
/* ***** リネームによるバックアップ作成 ********** */
if(rename(oFileName,iFileName) != 0){
printf("\n バックアップファイル[%s]に変更できません\n", iFileName);
return(-1); /* 異常終了 */
}
printf("... done\n");
}
/* ***** 前処理 ***** 設定出力 ********** */
printf(" 入力(%s) -> 出力(%s)\n",iFileName,oFileName);
printf(" 処理します ...");
/* ***** 前処理 ***** ファイルを開く ********** */
if((fpr=fopen(iFileName,"rt"))== NULL){ /* 入力ファイルを開く */
printf("\n 読み込みファイル[%s]が開けません\n", iFileName);
return(-2); /* 異常終了 */
}
if((fpw=fopen(oFileName,"wt"))== NULL){ /* 出力ファイルを開く */
printf("\n 書き込みファイル[%s]が開けません\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 主処理 ***** ファイルの読み書き ********** */
work_mm=fgetc(fpr);
while(feof(fpr)==0 && ferror(fpr)==0 && ferror(fpw)==0){
/* ** 各フラグ処理 ** */
if(indent_flag2==0 && indent_flag3==0 && work_mm_old!='\\'){
if(work_mm=='\''){
if(indent_flag0==0){
indent_flag0 = 1; // 文字フラグ設定
}else{
indent_flag0 = 0; // 文字フラグ解除
}
}else if(work_mm=='\"'){
if(indent_flag1==0){
indent_flag1 = 1; // 書式フラグ設定
}else{
indent_flag1 = 0; // 書式フラグ解除
}
}
}
if(indent_flag1==0){
if(work_mm=='\n') indent_flag3 = 0; // 行コメントフラグ解除
else if(work_mm_old=='*' && work_mm=='/') indent_flag2 = 0; // 囲みコメントフラグ解除
else if(work_mm_old=='/' && work_mm=='/') indent_flag3 = 1; // 行コメントフラグ設定
else if(work_mm_old=='/' && work_mm=='*') indent_flag2 = 1; // 囲みコメントフラグ設定
}
if(indent_flag0==0 && indent_flag1==0 && indent_flag2==0 && indent_flag3==0){
if(work_mm=='{') indent_count++; // インデント設定
if(work_mm=='}') indent_count--; // インデント解除
if(work_mm=='(') indent_count2++; // インデント設定
if(work_mm==')') indent_count2--; // インデント解除
/* ** インデント処理 ** */
if(work_mm=='\n'){
fputc(work_mm,fpw);
row_count=0;
work_mm='\t';
for(indent_loop=0;indent_loop<indent_count+indent_count2;indent_loop++){
fputc(work_mm,fpw);
}
while(feof(fpr)==0 && ferror(fpr)==0 && (work_mm==' ' || work_mm=='\t')){
row_count++;
work_mm=fgetc(fpr);
}
if(work_mm=='}') fseek(fpw,-1,SEEK_CUR);
if(work_mm=='\n' || work_mm=='#') fseek(fpw,-1*(indent_count+indent_count2),SEEK_CUR);
if(work_mm=='/' && row_count==1 ) fseek(fpw,-1*(indent_count+indent_count2),SEEK_CUR);
skip_flag=1;
}
}
if(work_mm_old == '\\' && work_mm == '\\'){
work_mm_old = '\0';
}else{
work_mm_old = work_mm; // 世代保存
}
if(skip_flag == 0){
fputc(work_mm,fpw);
work_mm=fgetc(fpr);
}else{
skip_flag = 0;
}
}
/* ***** 主処理 ***** エラー中断 ********** */
if(ferror(fpr)!=0){
printf("\n 読み込みファイル[%s]からの読み込みに失敗しました\n", iFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
if(ferror(fpw)!=0){
printf("\n 書き込みファイル[%s]への書き込みに失敗しました\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 後処理 ***** ファイルを閉じる ********** */
fclose(fpw); /* 出力ファイルを閉じる */
fclose(fpr); /* 入力ファイルを閉じる */
/* ***** 後処理 ***** 結果出力 ********** */
printf(".. done\n %ld行処理しました。\n",line_count+1);
return(0); /* 正常終了 */
}
/* ******************** End Of File ******************** */
|
半角スペース -> 水平タブ 置換プログラム for C/C++
1 |
/* **************************************************************** */
/* 半角スペース -> 水平タブ 置換プログラム for C/C++ */
/* **************************************************************** */
/* 処理概要
指定された入力ファイルを読み込み、2つ以上連続するスペースを
水平タブに変更し、指定された出力ファイルに書き込む。
タブへ置換するスペースの文字数は、パラメータ指定で可能とする。
入力ファイルと出力ファイルが同一ファイル名、もしくは、
出力ファイル未指定の場合は、入力のファイル名に「.BAK」を付加し、
リネーム後(もしくは、コピー後)、処理を行う。
例外(置換処理を行わない条件)
・スペース1文字のみの場合
・文字列・書式等(ダブルクォーテーションで囲まれている範囲)
文字(シングルクォーテーションで囲まれている範囲)は、
2文字入ることがないため、上記の条件に満たされる。
・囲みコメント(/o o/)。行コメント(//)は置換対象
*/
/* ********** ファイルインクルード ********** */
#include <stdio.h> /* 標準ライブラリー */
#include <stdlib.h> /* 標準ライブラリー */
#include <string.h> /* 文字処理 */
/* ********** 定数定義 ********** */
//#define BACKUPisCOPY /* コピーによるバックアップか */
/* ********** メイン処理 ********** */
int main(int argc,char *argv[]){
FILE *fpr,*fpw; /* 入出力ファイルポインタ */
char iFileName[128]; /* 入力ファイル名 */
char oFileName[128]; /* 出力ファイル名 */
int tab_size=4; /* タブ桁数の設定 */
char work_mm; /* 読み書き用 */
long line_count=0L; /* 読み込み行数 */
int tab_counter; /* タブ処理用 */
int tab_flag1=0; /* タブ置換フラグ 文字列・書式 */
int tab_flag2=0; /* タブ置換フラグ 囲みコメント */
int skip_flag=0; /* スペースの処理飛ばしフラグ */
printf(" ===== 半角スペース -> 水平タブ 置換プログラム ===== \n");
printf(" Version 2.10-030808\n");
printf(" Copyright (C) 2003 T.Imamura \n\n");
/* ***** 前処理 ***** パラメータ(引数)チェック ********** */
if((argc==3 || argc==4) && argv[1][0]=='-' && (argv[1][1]=='t' || argv[1][1]=='T') && argv[1][2]=='='){
tab_size = atoi(&argv[1][3]);
if(argc==3){
strcpy(iFileName,argv[2]);
strcpy(oFileName,argv[2]);
}else{
strcpy(iFileName,argv[2]);
strcpy(oFileName,argv[3]);
}
}else if(argc==2){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[1]);
}else if(argc==3){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[2]);
}else{
/* パラメタ不正:使い方の表示 */
printf(" Usage : %s [-t=n] InputFileName [OutputFileName]\n\n",argv[0]);
printf(" Option: -t=整数 : タブ桁数の指定 (Default=4)\n");
printf(" InputFileName : 入力ファイル名\n");
printf(" OutputFileName : 出力ファイル名\n\n");
printf(" Attention: 出力ファイルを指定しない場合は、入力ファイルの\n");
printf(" バックアップを取り入力ファイル名で出力します。\n\n");
return(1); /* 終了 */
}
/* ***** 前処理 ***** 同一ファイルの処理 ********** */
if(strcmp(iFileName,oFileName)==0){
strncat(iFileName,".bak",4); /* 読み込みファイル名に.bakを追加 */
printf(" バックアップファイル(%s)\n",iFileName);
printf(" 作成します ..");
#ifdef BACKUPisCOPY
// /* ***** コピーによるバックアップ作成 ********** */
// /* 注:入力と出力のファイル名変数は逆になる */
// if((fpr=fopen(oFileName,"rt"))== NULL){ /* 入力ファイルを開く */
// printf("\n 読み込みファイル[%s]が開けません\n", oFileName);
// return(-1); /* 異常終了 */
// }
// if((fpw=fopen(iFileName,"wt"))== NULL){ /* 出力ファイルを開く */
// printf("\n 書き込みファイル[%s]が開けません\n", iFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// fread(&work_mm,1,1,fpr);
// while(feof(fpr)==0 && ferror(fpr)==0 && ferror(fpw)==0){
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
// }
// if(ferror(fpr)!=0){
// printf("\n 読み込みファイル[%s]からの読み込みに失敗しました\n", iFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// if(ferror(fpw)!=0){
// printf("\n 書き込みファイル[%s]への書き込みに失敗しました\n", oFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
#else
/* ***** リネームによるバックアップ作成 ********** */
if(rename(oFileName,iFileName) != 0){
printf("\n バックアップファイル[%s]に変更できません\n", iFileName);
return(-1); /* 異常終了 */
}
#endif
printf("... done\n");
}
/* ***** 前処理 ***** 設定出力 ********** */
printf(" タブ桁数%d : 入力(%s) -> 出力(%s)\n",tab_size,iFileName,oFileName);
printf(" 処理します ...");
/* ***** 前処理 ***** ファイルを開く ********** */
if((fpr=fopen(iFileName,"rt"))== NULL){ /* 入力ファイルを開く */
printf("\n 読み込みファイル[%s]が開けません\n", iFileName);
return(-2); /* 異常終了 */
}
if((fpw=fopen(oFileName,"wt"))== NULL){ /* 出力ファイルを開く */
printf("\n 書き込みファイル[%s]が開けません\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 主処理 ***** ファイルの読み書き ********** */
// fread(&work_mm,1,1,fpr);
work_mm=fgetc(fpr);
while(feof(fpr)==0 && ferror(fpr)==0 && ferror(fpw)==0){
if(work_mm=='\n'){ /* 改行の場合 */
line_count++; /* 行数カウント */
}else if(tab_flag2 == 0 && work_mm=='\"'){ /* ダブル クォーテーション */
if(tab_flag1 == 0){
tab_flag1 = 1; /* タブ置換フラグ 文字列・書式 設定 */
}else{
tab_flag1 = 0; /* タブ置換フラグ 文字列・書式 解除 */
}
}else if(tab_flag1 == 0 && work_mm=='/'){
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
fputc(work_mm,fpw);
work_mm=fgetc(fpr);
if(work_mm=='*'){ /* コメント開始 */
tab_flag2 = 1; /* タブ置換フラグ コメント 設定 */
}
skip_flag=1;
}else if(tab_flag1 == 0 && work_mm=='*'){
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
fputc(work_mm,fpw);
work_mm=fgetc(fpr);
if(work_mm=='/'){ /* コメント終了 */
tab_flag2 = 0; /* タブ置換フラグ コメント 解除 */
}
skip_flag=1;
}else if(work_mm=='\\'){ /* エスケープ シーケンス */
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
fputc(work_mm,fpw);
work_mm=fgetc(fpr);
}else if(tab_flag1 == 0 && tab_flag2 == 0 && work_mm==' '){ /* スペースの場合 タブ置換 */
// fread(&work_mm,1,1,fpr);
work_mm=fgetc(fpr);
if(work_mm != ' '){ /* スペースが連続しなければ */
// fwrite(" ",1,1,fpw);
fputc(' ',fpw);
skip_flag = 1;
}else{ /* スペースが連続するならタブ置換 */
tab_counter=0;
while(work_mm == ' '){
tab_counter++;
if(tab_counter >= tab_size){
tab_counter=0;
// fwrite("\t",1,1,fpw);
fputc('\t',fpw);
}
// fread(&work_mm,1,1,fpr);
work_mm=fgetc(fpr);
}/* while(work_mm == ' ') */
// fwrite("\t",1,1,fpw);
fputc('\t',fpw);
skip_flag = 1;
}
}
if(skip_flag==0){
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
fputc(work_mm,fpw);
work_mm=fgetc(fpr);
}else{
skip_flag=0;
} /* if(skip_flag==0) */
}
/* ***** 主処理 ***** エラー中断 ********** */
if(ferror(fpr)!=0){
printf("\n 読み込みファイル[%s]からの読み込みに失敗しました\n", iFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
if(ferror(fpw)!=0){
printf("\n 書き込みファイル[%s]への書き込みに失敗しました\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 後処理 ***** ファイルを閉じる ********** */
fclose(fpw); /* 出力ファイルを閉じる */
fclose(fpr); /* 入力ファイルを閉じる */
/* ***** 後処理 ***** 結果出力 ********** */
printf(".. done\n %ld行処理しました。\n",line_count+1);
return(0); /* 正常終了 */
}
/* ******************** End Of File ******************** */
|
水平タブ -> 半角スペース 置換プログラム for C/C++
1 |
/* **************************************************************** */
/* 水平タブ -> 半角スペース 置換プログラム for C/C++ */
/* **************************************************************** */
/* 処理概要
指定された入力ファイルを読み込み、水平タブをスペースに変更し、
指定された出力ファイルに書き込む。
タブから置換するスペースの文字数は、パラメータ指定で可能とする。
入力ファイルと出力ファイルが同一ファイル名、もしくは、
出力ファイル未指定の場合は、入力のファイル名に「.BAK」を付加し、
リネーム後(もしくは、コピー後)、処理を行う。
*/
/* ********** ファイルインクルード ********** */
#include <stdio.h> /* 標準ライブラリー */
#include <stdlib.h> /* 標準ライブラリー */
#include <string.h> /* 文字処理 */
/* ********** 定数定義 ********** */
//#define BACKUPisCOPY /* コピーによるバックアップか */
/* ********** メイン処理 ********** */
int main(int argc,char *argv[]){
FILE *fpr,*fpw; /* 入出力ファイルポインタ */
char iFileName[128]; /* 入力ファイル名 */
char oFileName[128]; /* 出力ファイル名 */
int tab_size=4; /* タブ桁数の設定 */
char work_mm; /* 読み書き用 */
long line_count=0L; /* 書き込み行数 */
long row_count =1L; /* 書き込み列数 */
int tab_counter; /* タブ処理用 */
printf(" ===== 水平タブ -> 半角スペース 置換プログラム ===== \n");
printf(" Version 2.10-030808\n");
printf(" Copyright (C) 2003 T.Imamura \n\n");
/* ***** 前処理 ***** パラメータ(引数)チェック ********** */
if((argc==3 || argc==4) && argv[1][0]=='-' && (argv[1][1]=='t' || argv[1][1]=='T') && argv[1][2]=='='){
tab_size = atoi(&argv[1][3]);
if(argc==3){
strcpy(iFileName,argv[2]);
strcpy(oFileName,argv[2]);
}else{
strcpy(iFileName,argv[2]);
strcpy(oFileName,argv[3]);
}
}else if(argc==2){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[1]);
}else if(argc==3){
strcpy(iFileName,argv[1]);
strcpy(oFileName,argv[2]);
}else{
/* パラメタ不正:使い方の表示 */
printf(" Usage : %s [-t=n] InputFileName [OutputFileName]\n\n",argv[0]);
printf(" Option: -t=整数 : タブ桁数の指定 (Default=4)\n");
printf(" InputFileName : 入力ファイル名\n");
printf(" OutputFileName : 出力ファイル名\n\n");
printf(" Attention: 出力ファイルを指定しない場合は、入力ファイルの\n");
printf(" バックアップを取り入力ファイル名で出力します。\n\n");
return(1); /* 終了 */
}
/* ***** 前処理 ***** 同一ファイルの処理 ********** */
if(strcmp(iFileName,oFileName)==0){
strncat(iFileName,".bak",4); /* 読み込みファイル名に.bakを追加 */
printf(" バックアップファイル(%s)\n",iFileName);
printf(" 作成します ..");
#ifdef BACKUPisCOPY
// /* ***** コピーによるバックアップ作成 ********** */
// /* 注:入力と出力のファイル名変数は逆になる */
// if((fpr=fopen(oFileName,"rt"))== NULL){ /* 入力ファイルを開く */
// printf("\n 読み込みファイル[%s]が開けません\n", oFileName);
// return(-1); /* 異常終了 */
// }
// if((fpw=fopen(iFileName,"wt"))== NULL){ /* 出力ファイルを開く */
// printf("\n 書き込みファイル[%s]が開けません\n", iFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// fread(&work_mm,1,1,fpr);
// while(feof(fpr)==0 && ferror(fpr)==0 && ferror(fpw)==0){
// fwrite(&work_mm,1,1,fpw);
// fread(&work_mm,1,1,fpr);
// }
// if(ferror(fpr)!=0){
// printf("\n 読み込みファイル[%s]からの読み込みに失敗しました\n", iFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// if(ferror(fpw)!=0){
// printf("\n 書き込みファイル[%s]への書き込みに失敗しました\n", oFileName);
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
// return(-1); /* 異常終了 */
// }
// fclose(fpr); /* 入力ファイルを閉じる */
// fclose(fpw); /* 出力ファイルを閉じる */
#else
/* ***** リネームによるバックアップ作成 ********** */
if(rename(oFileName,iFileName) != 0){
printf("\n バックアップファイル[%s]に変更できません\n", iFileName);
return(-1); /* 異常終了 */
}
#endif
printf("... done\n");
}
/* ***** 前処理 ***** 設定出力 ********** */
printf(" タブ桁数%d : 入力(%s) -> 出力(%s)\n",tab_size,iFileName,oFileName);
printf(" 処理します ...");
/* ***** 前処理 ***** ファイルを開く ********** */
if((fpr=fopen(iFileName,"rt"))== NULL){ /* 入力ファイルを開く */
printf("\n 読み込みファイル[%s]が開けません\n", iFileName);
return(-2); /* 異常終了 */
}
if((fpw=fopen(oFileName,"wt"))== NULL){ /* 出力ファイルを開く */
printf("\n 書き込みファイル[%s]が開けません\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 主処理 ***** ファイルの読み書き ********** */
// fread(&work_mm,1,1,fpr);
work_mm=fgetc(fpr);
while(feof(fpr)==0 && ferror(fpr)==0 && ferror(fpw)==0){
if(work_mm=='\n'){ /* 改行の場合 */
line_count++; /* 行数カウント */
row_count =0L; /* 列数初期化 */
}
if(work_mm=='\t'&&tab_size!=0){ /* タブの場合 スペース置換 */
// work_mm=' ';
tab_counter=(row_count-1)%tab_size;
for(;tab_counter<tab_size;tab_counter++){
// fwrite(&work_mm,1,1,fpw);
fputc(' ',fpw);
row_count++; /* 列数カウント */
}
}else{ /* タブでなければそのまま出力 */
// fwrite(&work_mm,1,1,fpw);
fputc(work_mm,fpw);
row_count++; /* 列数カウント */
}
// fread(&work_mm,1,1,fpr);
work_mm=fgetc(fpr);
}
/* ***** 主処理 ***** エラー中断 ********** */
if(ferror(fpr)!=0){
printf("\n 読み込みファイル[%s]からの読み込みに失敗しました\n", iFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
if(ferror(fpw)!=0){
printf("\n 書き込みファイル[%s]への書き込みに失敗しました\n", oFileName);
fclose(fpr); /* 入力ファイルを閉じる */
fclose(fpw); /* 出力ファイルを閉じる */
return(-2); /* 異常終了 */
}
/* ***** 後処理 ***** ファイルを閉じる ********** */
fclose(fpw); /* 出力ファイルを閉じる */
fclose(fpr); /* 入力ファイルを閉じる */
/* ***** 後処理 ***** 結果出力 ********** */
printf(".. done\n %ld行処理しました。\n",line_count+1);
return(0); /* 正常終了 */
}
/* ******************** End Of File ******************** */
|
最終更新時間:2008年11月17日 23時37分00秒 指摘や意見などあればSandBoxのBBSへ。
indent.c sp2tab.c tab2sp.c