파일입출력 뭐가 잘못된건지요 ㅠ

질문 제목 : 잘못된거..

질문 내용 :

#includestdio.h
int main()
{
char buf[10];
file * file = fopen(test.txt, w+t);

fputs(데이터입력 : , stdout);
fgets(buf, sizeof(buf), stdin);
puts(buf);

fputs(buf, file);
fgets(buf, sizeof(buf), file);
puts(buf);
fclose(file);

return 0;
}

이때 실행창에서 asdf입력시
asdf
袴袴袴袴?
이렇게 출력되고

파일에 이렇게 저장됩니다..
뭐가 잘못된거죠/??????

댓글 7

  • 보슬 2025.12.04

    집에서 실험 해봤는데요. fputs(buf, file); 다음에 fseek(file,0,seek_set); 이렇게 하니깐 잘 되네요 그리고 수다님이 하신거처럼 rewind함수 써도 되네요.

  • 모든 2025.12.04

    흠.. 그럴수도 있을꺼 같네요.. 혹시 정확히 아시는분 없나요...

  • 초코홀릭 2025.12.04

    혹시 위치지시자 때문에 아닐까요? 처음에 fputs(buf,file) 하면 test.txt에 ASDF 입력되고 위치지시자 이동 하고 나서 fgets로 test에서 부터 buf에다 입력 받아야하잖아요 근데 위치지시자가 이동 한 위치에서 부터 아무 글 자도 없으니.. 이 상한 값이 나온 거 같은데 ..
    아닐 수도 있고요 ..(초보자임)

  • 큰나래 2025.12.04

    파일접근 모드를 w+t로 둬서 입출력 모두 가능하기에 그대로 썻는데 이게 문제인듯 하네요..
    입력과 출력시 각각 wt와 rt로 나눠서 하니 문제없이 되네요..

  • 에다 2025.12.04

    저기 ; 두 경우 모두 똑같은 결과가 나오는데요 ㅠㅠ

  • 가든 2025.12.04

    \trewind(file);
    \tfgets(buf, sizeof(buf), file);

  • 어리버리 2025.12.04

    buf를 초기화 해보세요

    memset(buf, 0x00, sizeof(buf));

C언어 다른 글

목록