#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
FILE* inStream; // 입력파일스트림
FILE* outStream; // 출력파일스트림
char InFile[256]; // 입력파일명
char OutFile[256]; // 출력파일명
char ch, copy;
while(1) {
printf("C 소스파일명을입력하세요: ");
gets(InFile);
printf("출력파일명을입력하세요: ");
gets(OutFile);
if(0==strcmp(InFile, OutFile)) { // 입력파일명과출력파일명이같으면
printf("입력파일과출력파일명이같습니다.\n");
continue; // 계속
}
else // 다르면
break; // 중지
}
inStream = fopen(InFile, "rt"); // 입력파일을연다
if(NULL==inStream) {
printf("입력파일을여는데실패했습니다.\n");
exit(1);
}
outStream = fopen(OutFile, "wt"); // 출력파일을연다
if(NULL==outStream) {
printf("출력파일을여는데실패했습니다.\n");
exit(1);
}
while((ch=fgetc(inStream))!=EOF) { // 파일의끝까지한문자씩읽어들인다
if(ch=='/') { // 문자가'/' 이면
copy = ch; // copy에다가저장해놓고
ch = fgetc(inStream); // 다음문자를읽는다
if(ch==EOF) { // 하필다음글자가파일의끝이면
fputc(copy, outStream); // 마지막문자'/'를쓰고
break; // 프로그램종료
}
else if(ch=='*') { // 그다음문자가'*' 이면, 즉"/*" 이면
while(1) { // "*/"를만날때까지반복
// '*'를만날때까지반복
while((ch=fgetc(inStream))!='*');
// '/'이면종료
if((ch=fgetc(inStream))=='/')
break;
}
}
else if(ch=='/') {
while((ch=fgetc(inStream))!='\n');
fputc(ch, outStream);
continue;
}
else { // "/*"가아니면
fputc(copy, outStream); // 먼저'/'를쓰고
fputc(ch, outStream); // 그다음읽은문자를쓰고
continue; // 계속한다
}
}
else {
fputc(ch, outStream); // 주어진문자를출력한다
}
}
fclose(inStream); // 입출력파일들을닫는다
fclose(outStream);
printf("1 개파일의comment를삭제하였습니다.\n");
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
원형큐 (0) | 2012.10.08 |
---|---|
c언어에서 %[^\n] 가 의미하는 것이 무엇인가요 ? (0) | 2012.10.08 |
조합의 계산 (0) | 2012.09.19 |
부분집합의 합 (0) | 2012.09.19 |
최대약수구하기-순환호출 (0) | 2012.09.19 |