소켓프로그래밍 공부중 저장에 관련된 형변환때문에 질문드려요...

zeraside의 이미지


savedata 때문에 문제가 생기는데.....

warning: passing arg 1 of `savedata' makes integer from pointer without a cast <-캐스팅이 잘못되어서 난다는건 알겠는데

어떻게 바꿔야할지 찾아봐도 모르겠어서 고수님들의 조언을 구하고자 질문을 올립니다 ㅠ 아시는분 설명좀 부탁드리겠습니다!

소스코드가 제대로 다 안올라가는거 같아서 텍스트에 붙여 넣어서 첨부 했어요....

File attachments: 
첨부파일 크기
Plain text icon test.txt1.73 KB
shyblue의 이미지

void savedata(unsigned char N);
 
char rcvBuffer[BUFSIZ]
savedata(&rcvBuffer);

핵심인 부분은 저렇게 3줄인데요... 당연히 문제가 되지요.
savedata(char *N)로 바꾸고, savedata(rcvBuffer)로 호출하세요.

그리고, savedata안에서, rcvBuffer를 파일로 저장하는 부분도 변경하셔야 겠네요.
한글자씩 저장하는 걸 원하는거라면,

for(i=0;i<strlen(N);i++) { fprintf(ifp,"%c",N[i]); }
fprintf(ifp,"\n");

한줄을 한번에 저장하실꺼라면
fprintf(ifp,"%s\n",N);

이렇게 되어야 할겁니다. 한글처럼 ascii code가 127을 초과하는 코드셋을 저장하고 싶으시면, 애초에 rcvBuffer를 unsigned char로 선언하시구요.
자세한 설명은 다른분에게~;;
時日也放聲大哭

時日也放聲大哭