while(!fin.eof()) 에서 중복문제..
해솔
DUEINFO info;ifstream fin;fin.open(due.t15, ios::binary);while(!fin.eof()){fin.read((char *) &info, sizeof(DUEINFO));if(info.month == l_time.GetMonth()||info.day== l_time.GetDay()){char str[256];sprintf(str, %d일 : %s,info.day,info.due);m_list.AddString(info.due);소스 일부분인데while(!fin.eof()){로 파일에 구조체 읽어오는데일치하는 부분이 있으면 출력하게 하였습니다.잘 되긴하는데 문제는 마지막 문자열을 중복해서 출력합니다.마지막에만 두번 읽는 것 같아요왜 그런가요? 이유를 모르겠네요 ㅠwhile(!fin.eof()) 니까 마지막줄에서 false되서 0되면 반복 안하는거 아니에요?혹시몰라서 !빼고 해봤는데 느낌표를 빼고while(fin.eof()) 하면 아예 동작을 안하네요 ㅠㅠ
-
꽃여름
제가 보기엔 컴퓨터는 코드대로 정확하게 수행한 것으로 보입니다.
본문 코드를 보아하니 저장된 파일도 고정된 길이(구조체 길이)로 저장되고 무작정 구조체 길이만큼 읽어내는 것으로 보이는데
그렇게 되면 처음 파일 포인터가 실제 EOF 위치에 놓이게 되더라도 컴퓨터는 이 자리가 EOF라고 판단을 못 내립니다.
왜냐하면 파일의 끝(EOF)이라는건 파일 포인터가 더 이상 이동할 수 없어야 EOF라고 판단하거든요.
즉, 본문 코드의 경우 EOF 위치에 딱 놓이
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2692424 | 2차원배열 자료입력질문이요! (1) | 똘끼 | 2025-04-22 |
2692401 | 유닉스안에서 C언어를 이용한 명함 만들기 입니다; 이해안가는 부분이있네요 | 2gether | 2025-04-22 |
2692374 | 고수님들 댓글 마니부탁해요!!! (2) | 엄지 | 2025-04-22 |
2692343 | scnaf에 자꾸 선언을 참조하라는데;; (8) | 도래 | 2025-04-22 |
2692282 | 도스상에서 생성된 exe파일에 press~ 뜨게 하기 (4) | 회사원 | 2025-04-21 |
2692256 | scanf("%*c"); ㅠㅠ 고수님들 | 거북이 | 2025-04-21 |
2692230 | 하노이탑 질문입니다. (1) | 미쁘다 | 2025-04-21 |
2692210 | 정보 올림피아드 문제인데.. 풀이 과정이 궁금합니다.(재귀함수) (5) | 물티슈 | 2025-04-20 |
2692144 | C언어와 리눅스에 대한 질문입니다. | 싴흐한세여니 | 2025-04-20 |
2692114 | 컨텍스트 스위칭하는데 걸리는 시간 측정.. | YourWay | 2025-04-19 |
2692086 | 간접참조 연산자, 증감연산자 질문이용! (2) | 블랙캣 | 2025-04-19 |
2692056 | 주석좀 달아주세요. 몇개적엇는데 몇개만달아주세요. (2) | DevilsTears | 2025-04-19 |
2691978 | 진수 쉽게 이해하는법... (3) | 지지않는 | 2025-04-18 |
2691949 | getchar() 한 문자를 입력받는 함수 질문 | 채꽃 | 2025-04-18 |
2691919 | 배열 정렬 및 합치기 질문입니다. | 사과 | 2025-04-18 |
2691845 | c언어왕초보 질문이 있습니다........ | 루나 | 2025-04-17 |
2691815 | void add(int num); 함수... (4) | 살랑살랑 | 2025-04-17 |
2691756 | 명령 프롬프트 스크롤바가 없어요 | 두메꽃 | 2025-04-16 |
2691725 | 자료구조에 관련해서 질문이 있어 글을 올립니다. | 누리알찬 | 2025-04-16 |
2691697 | if 문에서 구조체 배열에 저장되있던 문자열 검사하는 법 ? (2) | 민트맛사탕 | 2025-04-16 |