2017-11-28 6 views
1

C-Programm을 작성해야하는 곳에서 작업을해야합니다. 여기서 C-Programm은 콘솔에서 입력 파일 이름을 가져옵니다. 명령 행 매개 변수.
input.txt 파일 (입력 파일에 bmp 파일에 대한 정보 - 색상 등)의 데이터가 생성 된 output.png 파일로 이동해야합니다. 20 20 매개 변수는 output.png 이미지의 너비와 높이를 나타냅니다. 터미널에서 input.txt 파일과 output.bmp 파일을 읽습니다. (C 프로그래밍)

그래서 (리눅스에서 테스트) 예를 들어, 콘솔 요청은 다음과 같이 표시됩니다

./main input.txt output.bmp 20 20 

는이 코드가 input.txt을 파일을 읽어 화면에두고 있음을 알고있다.

FILE *input; 
int ch; 
input = fopen("input.txt","r"); 
ch = fgetc(input); 
while(!feof(input)) { 
    putchar(ch); 
    ch = fgetc(input); 
} 
fclose(input); 

그리고 output.png 파일에 쓰기를합니다.

FILE *output; 
int i; 
    output = fopen("ass2_everyinformationin.bmp", "wb+"); 
for(i = 0; i < 55; i++)    
{ 
    fputc(rectangle_bmp[i], output); 
} 
fclose(output); 

그러나이 코드는 명령 줄 매개 변수를 사용하지 않고 코드에서 직접 하드 코딩하는 경우에만 작동합니다.
실마리가 없습니다. 구현 방법과 인터넷에서 도움이되는 정보를 찾지 못했습니다. 어쩌면 누군가 나를 도울 수 있습니다.

인사말

+1

https://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong – Mat

+0

main()에 대한 매개 변수를 알고 있습니까? 나는. argc 및 argv. – Yunnosch

+0

@Yunnosch 아니, 내가 아냐. 나는 그들이 원하는 결과를 얻을 필요가 있니? –

답변

0

) (표준 주의 전체 프로토 타입은

int main(int argc, char* argv[]); 

당신은 argc
"문자열"의 목록 (늘어나는만큼 인수의 수와 int를 얻을 수있다 그들은 C), argv에 존재합니다.

당신은 예를 들어 인수 재생을 시작

#include "stdio.h" 
int main(int argc, char* argv[]) 
{ 

    printf("Number: %d\n", argc); 
    printf("0: %s\n", argv[0]); 
    if (1<argc) 
    { 
     printf("1: %s\n", argv[1]); 
    } 
} 

를 사용할 수 있습니다.

의도적으로 명령 줄 매개 변수를 사용하는 기본 예제 외에는 구현하지 않습니다. 이것은 과제 해결에 도움이되지 않고 할당에 대한 도움을 제공하는 Accelerated StackOverflow 정책과 일치합니다.

관련 문제