c언어 fread() 함수로 로컬 데이터를 읽으려는 데 문제가 발생했습니다

c언어 fread() 함수로 로컬 데이터를 읽으려는 데 문제가 발생했습니다

작성일 2023.10.22댓글 1건
    게시물 수정 , 삭제는 로그인 필요

아직은 로컬데이터를 처리하는 과정밖에 짜진 않았으나 fopen()에서부터 오류가 났습니다..




#include<stdio.h>
#define MAX_BUF_SIZE 128


int main(void)
{


int button1;


printf("1. 로컬 데이터 2. 네트워크 데이터\n");
printf("원하시는 데이터의 번호를 입력: ");
scanf_s("%d", &button1);

size_t ret;
char buffer[MAX_BUF_SIZE] = { 0, };


char local_filepath[] = "C:\\temp\\example.txt"; // 로컬 데이터 경로
char network_filepath[] = "\\\127.0.0.1\\C$\\temp\\test.txt"; // 네트워크 데이터 경로


char loc_file = fopen(local_filepath, "rb");//로컬 파일 열기


char net_file = fopen(network_filepath, "rb"); // 네트워크 파일 열기


switch (button1) {


case 1:
if (loc_file != NULL)
{
ret = fread(buffer, sizeof(char), MAX_BUF_SIZE - 1, loc_file);
if (loc_file > 0) {
printf("[fread] ret = %d\n", (int)ret);
printf("%s\n", buffer);
}
else {
//fread 를 통해 데이터를 얻지 못함
}
fclose(loc_file);
break;
}
return 0;
}
}
19줄 21줄 부분은 어떻게 해결해야 하나요?



#c언어 fread #c언어 fread 사용법 #c언어 fread fwrite #c언어 fread 파일 읽기 #c언어 fopen fread

profile_image 익명 작성일 -

19번째 줄과 21번째 줄에서 발생한 오류를 해결하기 위해 몇 가지 수정이 필요합니다.

1. 19번째 줄: `fopen()` 함수의 반환 타입이 `FILE*`이므로 `loc_file` 변수의 타입을 `FILE*`로 변경해야 합니다. 즉, `char loc_file`를 `FILE* loc_file`로 수정해야 합니다.

수정된 코드:

```c

FILE* loc_file = fopen(local_filepath, "rb"); // 로컬 파일 열기

```

2. 21번째 줄: 마찬가지로 `fopen()` 함수의 반환 타입이 `FILE*`이므로 `net_file` 변수의 타입을 `FILE*`로 변경해야 합니다. 즉, `char net_file`를 `FILE* net_file`로 수정해야 합니다.

수정된 코드:

```c

FILE* net_file = fopen(network_filepath, "rb"); // 네트워크 파일 열기

```

위의 두 가지 수정을 통해 오류가 해결될 것입니다. 그러나 이외에도 프로그램의 다른 부분에서도 문제가 발생할 수 있으므로, 오류 해결 후에도 원하는 결과를 얻지 못하는 경우 추가적인 디버깅이 필요할 수 있습니다.