안녕하세요 ^^;C언어 소스 문제점 봐주세요
튼싹
질문 제목 :소스를 하나 만들어서 하구 있는데요 컴파일은 되는데 그다음에서 막혀요 ㅜㅜ
도움 요청 합니다제가 쓰는 프로그램이 파인텀인데요 여기서 소스를 짜서 하는데
[info /user2/student/dhkim_st/st115/source 25 ]a.out
파일 checker 프로그램
실행 방법:filecheckergood 파일명1 파일명2 이렇게 뜨더라구요
그래서 교수님이 인수값을 주라구 하시는데 주니까
[info /user2/student/dhkim_st/st115/source 21 ]a.out f1, f2
파일1이 열리지 않았습니다. 이렇게 뜨네요
소스가 문제인건지 제가 인수값을 잘못 준건지 잘 모르겟어요 도움 요청 합니다 ^^;;
질문 내용 :
/* 2개의 2진 파일의 일치성을 조사하는 프로그램(filecheckergood.c) */
/* 주:(실행 방법) filecheckergood 파일명1 파일명2 */
#include stdio.h
#include string.h
#include stdlib.h
#define message_size 256
/* 에러 메세지를 출력하며 종료하는 함수*/
void errorexit(char *pstr, int flag)
{
fprintf(stderr, pstr);
if (flag)
exit(exit_failure);
else
exit(exit_success);
}
int main(int argc, char *argv[])
{
/* file *형의 스트림 포인터*/
file *pfile1 = null, *pfile2 = null;
/* 파일명의 포인터(argv) */
char *pfilename1 = , *pfilename2 = ;
/* 파일 크기*/
long size1, size2, i; /* 루프 제어 변수*/
int ch1, ch2;
char strmsg[message_size + 1] = ;
/* 프로그램 시작시의 인수를 검증해 도움말을 출력한다*/
if (argc != 3 || ! strcmp(argv[1], /? )
|| ! strcmp(argv[1], -? )) {
errorexit(파일 checker 프로그램 \n
실행 방법:filecheckergood 파일명1 파일명2 \n,
exit_success);
}
pfilename1 = argv[1]; /* 인수의 파일명1을 얻어온다*/
pfilename2 = argv[2]; /* 인수의 파일명2를 얻어온다*/
/* 파일1을 바이너리 읽기 모드로 연다(입력용) */
if ((pfile1 = fopen(pfilename1, rb)) == null)
errorexit(파일1이 열리지 않았습니다. \n, exit_failure);
/* 파일2를 바이너리 읽기 모드로 연다(입력용) */
if ((pfile2 = fopen(pfilename2, rb)) == null)
errorexit(파일2가 열리지 않았습니다. \n, exit_failure);
/* 2개의 파일의 끝으로 이동해 크기를 구한다*/
fseek(pfile1, 0, seek_end);
size1 = ftell(pfile1);
rewind(pfile1);
fseek(pfile2, 0, seek_end);
size2 = ftell(pfile2);
rewind(pfile2);
/* 2개의 파일의 크기를 체크한다*/
if (size1 != size2) {
/* 파일을 닫는다*/
fclose(pfile1);
fclose(pfile2);
&n /* 출력 메세지를 편집한다*/
sprintf(strmsg, 2개의 파일은 크기가 다릅니다. \n
%s의 사이즈:%d\n%s의 사이즈:%d\n,
pfilename1, size1, pfilename2, size2);
/* 메세지를 출력하고 종료한다*/
errorexit(strmsg, exit_failure);
}
/* 2개의 파일이 일치하는지 상세하게 조사한다*/
for (i = 0; i size1; i++) {
if ((ch1 = fgetc(pfile1)) != (ch2 = fgetc(pfile2))) {
/* 위치 지시자는 사용자용으로 「1증가된 값」을 가리킨다(실제보다 1많다) */
size1 = ftell(pfile1);
/* 출력 메세지를 편집한다*/
sprintf(strmsg, %d번째 바이트에서 불일치가 발견되었습니다. \n
%s의 16진수 값:%x\n%s의 16진수 값:%x\n,
size1, pfilename1, ch1, pfilename2, ch2);
/* 메시지를 출력하고 종료한다*/
errorexit(strmsg, exit_failure);
}
}
printf(2개의 파일이 일치합니다. \n);
/* 파일을 닫는다*/
fclose(pfile1);
fclose(pfile2);
return 0;
}
-
매미꽃
음...파일읽어오는건 문제가 없어보이는데. 파일명이 잘못되거나 파일이 존재하지 않는게 아닐까요
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |
2675249 | C책 좀 추천해 주세요 (2) | 딸기우유 | 2024-11-16 |