C言語の課題をファイルを見てもらえばわかると思うが、プログラムを説明するためにプログラムの前に行番号をつけている。
この行番号をつける作業というのを助けるのがこのプログラムである。
Program |
/* Author : Ken Bise Date : 20050330 Comment: ファイルを読み込んで、行数をつけて別のファイルを作成する。 読み込むファイルが必要で、書き込むファイルは無ければ新規、あれば追加となる。 */ #include <stdio.h> main() { FILE *fr, *fw; int i; char buffer[255], r_file[20], w_file[20]; printf("read file? "); scanf("%s",r_file); printf("write file? "); scanf("%s",w_file); if((fr=fopen(r_file,"r")) == NULL) { puts("read file open error !!"); return(-1); } if((fw=fopen(w_file,"a")) == NULL) { puts("write file open error !!"); return(-1); } for(i=1;;i++) { if(fgets(buffer,255,fr) == NULL){ if(ferror(fr)) { puts("read error !!"); return(-1); } if(feof(fr)) break; } fprintf(fw,"%3d: ",i); fputs(buffer,fw); } if(fclose(fr) == EOF) { puts("read file close error !!"); return(-1); } if(fclose(fw) == EOF) { puts("write file close error !!"); return(-1); } return(0); } |
このプログラムを実行すると「read file?」と聞かれるのでそこに行番号をつけたいファイル名を打って改行。
次に「write file?」と聞かれるのでそこに書き込みたいファイルか新規ファイルの名前を打って改行。
「write file」の場合、すでに存在するファイルなら後ろに追加となってます。
readとwriteを同じファイル名にしても問題なく実行可能です。