Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- linux
- visual
- C++
- SSG
- 도움말
- win32
- MyTread
- 마이크로소프트
- 별찍기
- mfc 실습
- MyThread
- 실습
- C언어
- 충무창업큐브
- do it c
- 김성엽
- tips강좌
- MFC
- 핵심 요약
- 정보처리기사
- 유료강좌
- 미가공
- ListBox
- Time
- Tipsware
- 포트폴리오
- C
- 정처기 독학
- MFC 예제
- mysql
Archives
- Today
- Total
History
[C언어][Q&A] fread의 반복횟수에 대하여 본문
728x90
반응형
질문:
안녕하세요. do it c언어 책에 있는 반복 횟수 관련 설명이 잘 이해되지 않습니다.(p.521~522) 20바이트 배열을 4바이트씩 5번 파일에서 read 한 것과 20바이트로 1번 파일에서 read 한 것이 동일한 결과가 나오는 건가요?
답변:
네 맞습니다. 20바이트 배열을 4바이트씩 5번 파일에서 read한 것과 20바이트로 1번 파일에서 read 한 것이 동일한 결과가 나옵니다. 아래 코드를 보시면 이해가 잘 될 겁니다.
#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
int a=100; // int 안에 100 대입
int data[5] = {1,2,3,4,5}; // 1,2,3,4,5가 들어있는 int 배열
int temp[5] = {}; // 초기화만 시킨 int 배열
FILE* p_fp = fopen("1.dat", "wb"); //1.dat 파일을 바이너리 쓰기모드로 연다.
if (p_fp){ //정상적으로 쓰기모드가 완료됐다면 if 조건 안에 들어온다.
fwrite(&a, sizeof(int), 1, p_fp); //변수 a의 주소를 4바이트로 1번 쓴다.
fwrite(&data, sizeof(int), 5, p_fp);//그 뒤에 data 배열의 주소를 4바이트로 5번 쓴다.
}
fseek(p_fp, 0, SEEK_SET); // 파일 포인터를 다시 원점으로 되돌린다.
FILE* p_fp2 = fopen("1.dat", "rb"); //1.dat 파일을 바이너리 읽기모드로 연다.
if (p_fp2){ //정상적으로 읽기 모드가 되었다면 if 안으로 들어온다.
//fread(&temp, sizeof(data), 1, p_fp2); //20바이트를 1번만 읽었을 때의 값 100 1 2 3 4
fread(&temp, sizeof(int), 5, p_fp2); //4바이트를 5번 읽었을 때의 값 100 1 2 3 4
//두 fread는 같다.
for (int i = 0; i < 5; i++) {
printf("%d ", temp[i]); //출력해서 확인한다.
}
}
fclose(p_fp);
fclose(p_fp2); //파일 포인터를 열었으면 둘 다 닫아준다.
}
728x90
반응형
'C,C++ > 개념 실습 프로그래밍' 카테고리의 다른 글
[c언어][파일 입출력] 텍스트 파일과 바이너리 파일 (0) | 2023.01.18 |
---|---|
[C언어] strcmp 함수(문자열 비교)에 대하여 (0) | 2023.01.14 |
시프트 연산자와 비트연산자 실습 (0) | 2022.11.20 |
시프트 연산자와 비트연산자 step_3 (0) | 2022.11.19 |
시프트 연산자와 비트연산자 step_2 (0) | 2022.11.19 |
Comments