왜 출력이 이런지 설명 부탁드립니다

조회수 579회

include

include

int main() { FILE *fp; char str[20];

fp = fopen("a.txt", "a+");
if (fp == NULL)
{
    printf("파일을 만들지 못했습니다.\n");
    return 1;
}
while (1)
{
    printf("과일 이름 : ");
    scanf("%s", str);
    if(strcmp(str,"end")==0)
    {
        break;
    }
    else if (strcmp(str, "list") == 0)
    {
        fseek(fp, 0, SEEK_SET);
        while (1)
        {
            fgets(str, sizeof(str), fp);
            if (feof(fp))break;
            printf("%s", str);
        }
    }
    else
    {
        fprintf(fp, "%s\n", str);
    }

}
fclose(fp);

return 0;

}

이코드를 실행시키면 이미지

왜 이렇게 되는건가요?? 과일이름을 원래 한개만 써야되는데 일부러 2개 3개 써봤는데 왜 과일이름이 두번나오고 3번 나오져??? 원리설명좀 ㅠㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)