freopen의 리턴값이 Null인데 원인이 무엇일까요?

freopen을 했는데, NULL값을 출력합니다. freopen제거하고 scanf로 콘솔창에서는 표준입력이 잘 되는데, freopen를 하면 계속 NULL값을 출력하는데 문제가 무엇일까요?

  1. 프로젝트는 win32 콘솔응용프로그램에서 빈 프로젝트,SDL(Security Development LifeCycle)을 체크했습니다.
  2. input.txt 파일은 프로젝트와 같이 뒀습니다.
  3. #pragma warning(disable:4996)를 추가하였습니다.
  4. 기존 codeblocks를 썼었는데, 지웠습니다. visual studio 버전은 2013 입니다.

초보라 잘 모르겠네요ㅜㅜ 도움 부탁드립니다.


#include <stdio.h>
#pragma warning(disable:4996)

int main(void)
{
    int d[20];

    if (freopen("input.txt", "r", stdin) == NULL)
        fprintf(stderr, "error redirecting stdin\n");

    for (int i = 0; i < 20; i++){

        scanf("%d", &d[i]);

    }

    for (int i = 0; i < 20; i++){

        printf("%d ", d[i]);
    }

    printf("\n");

    return 0;
}

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.