1.mycat명령 (유닉스의 cat 명령 기능과 동일) 구현
–mycat [-n] [filename1 filename2 … ]
–옵션처리: -n
–20개까지 파일명 처리–파일명이 주어지지 않을 경우 표준 입력 장치로 입력된 정보를 화면에 출력하도록 구현한다.
가 문제인데 개별적으로는 돌아가는데 모두 한 코드에 넣으니 파일을 열지를 못하고 파일명이 없을 때로 인식되어 계속 값을 입력받네요... 옵션 -n을 하던 안하던 파일명이 입력이 안될경우에 입력된 정보를 명령어 echo처럼 출력하고 파일 이름이 입력되었을 때 파일을 열 수 있도록 코딩을 하려면 어떻게 수정해야 좋을지 좀 가르쳐주십시오
아래는 코드입니다.
#include <stdio.h>
#include <string.h>
int checkOption(int ac, char *av[]);
int main(int ac, char *av[])
{
FILE *fp;
int ch;
int nl;
int line = 1;
int num = 1;
char s[11];
int i=0;
if((fp = fopen(av[0], "")) == NULL){
printf("type any text : ");
fgets(s,sizeof(s),stdin);
puts(s);
return 0;
}
for(int i = 1; i < ac; i++){
if (num>20)
break;
if (strcmp(av[i], "-n") == 0){
printf("%d ", line++);
i++;
}
if((fp = fopen(av[i], "r")) == NULL){
printf("Can't open %s\n", av[i]);
return -2;
}
else{
num++;
while((ch = fgetc(fp)) != EOF){
fputc(ch, stdout);
if (strcmp(av[1], "-n") == 0){
if (ch == '\n'){
printf("%d ", line++);
}
}
}
fclose(fp);
}
}
if (strcmp(av[1], "-n") == 0)
printf("\r");
return 0;
}