아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
견실한도롱이156
견실한도롱이15619.04.09

main 함수 인자를 이용해 파일의 내용을 입력받을 수 있나요?

main 함수 인자를 이용해 파일의 내용을 입력받을 수 있나요??

argc와 argv를 사용해서 메모장을 열어,

메모장에있는 문자열 혹은 문자 정수를 출력할 수 있나요?


55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • main을 말씀하시는건 보통 C 언어 질문이신것같습니다.

    #include <stdio.h> int main() { char from_a_txt[30]; char from_a_txt2[30]; FILE *file_pointer; file_pointer=fopen("a.txt", "r"); fscanf(file_pointer, "%s" from_a_txt); printf("읽어온 부분 : %s \n", from_a_txt); fseek(file_pointer, 0, SEEK_SET); fgets(from_a_txt2, 30, file_pointer); printf("읽어온 부분 : %s \n", from_a_txt2); fclose(file_pointer); return 0; }


    아래 URL 로 들어가시면 더 자세한 설명 사진과 함께 있사오니 참고 바랍니다.


    출처:https://desire-with-passion.tistory.com/169[열정과 함께]


  • main 함수의 인자로 파일의 내용을 입력받는다는 게 무슨 뜻인지 잘 모르겠습니다.

    저는 제 마음대로 명령 프롬프트에서 인자로 넘긴 파일을 입력받을 수 있는지로 해석하겠습니다.

    #include <stdio.h> // argc는 argv 배열의 길이입니다. int main(int argc, char **argv) { if(argc < 2) { // 인자의 개수를 먼저 확인합니다. printf("사용법 : %s 파일명\n", argv[0]); return 1; } // argv[0]은 이 프로그램을 실행시킨 명령어입니다. FILE *fp = fopen(argv[1], "r"); if(!fp) { // 나머지 인자들이 argv[1]부터 들어갑니다. printf("파일을 열지 못했습니다.\n"); return 2; } char buf[1025]; int read; while(read = fread(buf, 1, 1024, fp)) { buf[read] = '\0'; printf("%s", buf); // 입력받은 파일 출력 } return fclose(fp); }

    이렇게 하면 main.exe test.txt로 test.txt 파일의 내용을 출력하게 할 수 있습니다.

    main.exe만 입력하면 사용법 : main.exe 파일명이 출력됩니다.

    ※ 파일명에 띄어쓰기가 있다면 따옴표(")로 묶어줘야 합니다!

    혹시 인자로 파일명을 받고 싶은 게 아니라, 표준 입력 stdin으로 키보드 대신 파일에서 입력받고 싶었던 것이라면

    main.exe < test.txt로 하면 됩니다. (Redirection Operator를 검색해 보세요!)

    마찬가지로 표준 출력 stdout으로 출력하는 게 콘솔 화면이 아닌 파일에 저장되게 하시려면

    main.exe > output.txt처럼 하시면 됩니다