C언어 파일 입출력에 대해서

조회수 86회
#include <stdio.h>
#include <string.h>

int main()
{
    FILE* rfp;
    FILE* wfp;
    char aa[200];
    char bb[200];
    int change;

    rfp = fopen("file1.txt", "r");
    wfp = fopen("file2.txt", "w");

    while (1)
    {
        fgets(aa, 200, rfp);
        //fscanf(rfp, "%s", aa);

        change = strlen(aa);

        if (feof(rfp))
            break;

        for (int i = 0; i < change; i++)
        {
            bb[i] = aa[(change - 1) - i];

        }
        bb[change] = '\0';

        fprintf(wfp, "%s\n", bb);
        //fputs(bb, wfp);
    }

    fclose(rfp);
    fclose(wfp);

    return 0;
}

위처럼 file1의 문자열을을 거꾸로 입력해주고, file2에 출력해주는 코드를 만들었는데요.

왜 fgets(aa, 200, rfp); 함수를 사용할 땐 file2에서 처럼 맨 위에 공백이 생길까요?

다른 부분에 공백이 생기는 건 fgets() 함수가 '\n'까지 읽어오기 때문인건 이해가 되는데

맨 위에 생긴 공백에 대해서는 이해가 잘 되지 않네요..!

file1

Visual
Studio Professional
Basic-C
Study

file2

(지금 여기 공백 있음)
lausiV
(공백)
lanoisseforP oidutS
(공백)
C-cisaB
(공백)
ydutS

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

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

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.