
fread 함수로 byte 단위로 읽어온 데이터를 char* 형태로 변환하는 방법은 다음과 같습니다.
1. 읽어온 데이터의 크기를 알아내야 합니다. fread 함수의 반환값은 읽어온 데이터의 크기입니다.
2. char* 형태로 변환하기 위해, 읽어온 데이터의 크기만큼의 메모리를 할당합니다.
3. 할당된 메모리에 읽어온 데이터를 복사합니다.
다음은 예제입니다.
#hostingforum.kr
c
#include
#include
int main() {
FILE *fp = fopen("test.txt", "rb");
if (fp == NULL) {
printf("파일을 열 수 없습니다.n");
return -1;
}
char *data;
size_t size = 1024; // 읽어올 데이터의 크기
data = (char*)malloc(size);
if (fread(data, 1, size, fp) != size) {
printf("파일을 읽을 수 없습니다.n");
free(data);
fclose(fp);
return -1;
}
printf("%sn", data);
// char* 형태로 변환한 데이터를 다시 파일에 쓰기
FILE *fp2 = fopen("test2.txt", "wb");
if (fp2 == NULL) {
printf("파일을 열 수 없습니다.n");
free(data);
fclose(fp);
return -1;
}
if (fwrite(data, 1, size, fp2) != size) {
printf("파일을 쓰지 못했습니다.n");
free(data);
fclose(fp);
fclose(fp2);
return -1;
}
free(data);
fclose(fp);
fclose(fp2);
return 0;
}
위의 예제는 fread 함수로 byte 단위로 읽어온 데이터를 char* 형태로 변환하고, 다시 파일에 쓰는 방법을 보여줍니다.
2025-03-19 14:52