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처럼 하시면 됩니다