질문 제목 : 잘못된거..
질문 내용 :
#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
袴袴袴袴?
이렇게 출력되고
파일에 이렇게 저장됩니다..
뭐가 잘못된거죠/??????
보슬 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));