게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
리눅스 gcc 질문드립니다...
게시물ID : programmer_22274짧은주소 복사하기
작성자 : zzzjinwook
추천 : 0
조회수 : 997회
댓글수 : 1개
등록시간 : 2018/04/09 21:06:26
옵션
  • 창작글
  • 본인삭제금지
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;
}

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호