설명자를 정수로 함수에 어떻게 전달합니까?

jsandovalm

파일에서 특정 문자의 발생을 계산해야합니다. 검색을 수행하는 기능의 정의는 다음과 같습니다.

int countChar(int descriptor, char *charsearch);

컴파일러 시간에 다음 오류가 있습니다.

program.c: In function ‘main’:
program.c:14:89: warning: passing argument 1 of ‘countChar’ makes integer from pointer without a cast [-Wint-conversion]
  printf("The character %s has been found %d times in the file %s.", argv[1], countChar(o_file, argv[1]), argv[2]);
program.c:4:19: note: expected ‘int’ but argument is of type ‘FILE *’
  int countChar(int descriptor, char *charsearch);
programa.c: In function ‘countChar’:
programa.c:25:15: warning: comparison between pointer and integer
  if ( leido == charsearch){

내 코드는 다음과 같습니다.

#include <stdio.h>

FILE *o_file;
int countChar(int descriptor, char *charsearch);

int main(int argc, char **argv){
    FILE *o_file = fopen(argv[2], "r");
    if (!o_file){
        printf("Cannot open file %s.", argv[2]);
        return 1;
    }else{
        printf("File %s open \n", argv[2]);
        printf("Searching for %s ...\n", argv[1]);
        printf("The character %s has been found %d times in the file %s.", argv[1], countChar(o_file, argv[1]), argv[2]);
    }
    fclose(o_file);
    printf("File %s closed", argv[2]);
}

int countChar(int descriptor, char *charsearch){
    int counting = 0;
    do {
        int leido = fgetc(o_file);
        if (leido != EOF){
            if ( leido == charsearch){
                counting ++;
            }
        }
    } while (!feof(o_file));
    return counting;
}
레미 르보

FILE*포인터는 파일 스트림, 파일 기술자가 아니다. FILE*함수 선언과 호환되지 않습니다. 특히 함수가 어쨌든 입력으로 받는 시스템 함수를 호출하기 때문에 첫 번째 매개 변수에서 FILE*대신 a를 사용 하도록 함수를 변경하십시오 .intFILE*

또한 문자열이 아닌 단일 문자 만 검색하므로 두 번째 매개 변수를에서 char*변경해야 char합니다.

#include <stdio.h>

int countChar(FILE* f, char charsearch);

int main(int argc, char **argv){
    FILE *o_file = fopen(argv[2], "r");
    if (!o_file){
        printf("Cannot open file %s.", argv[2]);
        return 1;
    }
    printf("File %s open \n", argv[2]);
    printf("Searching for %s ...\n", argv[1]);
    printf("The character %c has been found %d times in the file %s.", argv[1][0], countChar(o_file, argv[1][0]), argv[2]);
    fclose(o_file);
    printf("File %s closed", argv[2]);
}

int countChar(FILE *f, char charsearch){
    int counting = 0;
    do {
        int leido = fgetc(f);
        if (leido != EOF){
            if (leido == charsearch){
                ++counting;
            }
        }
    } while (!feof(f));
    return counting;
}

이 함수의 서명을 변경할 수 없습니다하는 경우에, 당신은 사용할 필요가 open()대신 fopen()하고, read()대신 fgetc(). 또한 char*루프 비교 중 역 참조 :

#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int countChar(int descriptor, char* charsearch);

int main(int argc, char **argv){
    int fd = open(argv[2], O_RDONLY);
    if (fd == -1){
        printf("Cannot open file %s.", argv[2]);
        return 1;
    }
    printf("File %s open \n", argv[2]);
    printf("Searching for %s ...\n", argv[1]);
    printf("The character %s has been found %d times in the file %s.", argv[1], countChar(fd, argv[1]), argv[2]);
    close(fd);
    printf("File %s closed", argv[2]);
}

int countChar(int descriptor, char* charsearch){
    int counting = 0;
    char leido;
    while (read(descriptor, &leido, 1) == 1){
        if (leido == *charsearch){
            ++counting;
        }
    }
    return counting;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

변수 정의를 함수에 어떻게 전달합니까?

분류에서Dev

transform () 함수에 함수를 인수로 어떻게 전달합니까?

분류에서Dev

Java 함수에 String [] 인수를 어떻게 전달합니까?

분류에서Dev

JSON 팩토리를 함수에 어떻게 전달합니까?

분류에서Dev

내 메인으로 전달할 install4j에서 명령 줄 인수를 어떻게 설정합니까?

분류에서Dev

함수를 다른 함수에 인수로 전달할 때 해당 함수를 어떻게 반복합니까?

분류에서Dev

함수를 다른 함수에 인수로 전달할 때 해당 함수를 어떻게 반복합니까?

분류에서Dev

30 일 전 ssrs에서 자세히 설명하는 함수를 어떻게 정의합니까?

분류에서Dev

argv에서 pthread_create 함수로 정수를 어떻게 전달합니까? (씨)

분류에서Dev

argv에서 pthread_create 함수로 정수를 어떻게 전달합니까? (씨)

분류에서Dev

JavaScript / jQuery : 'this'로 요소를 함수에 어떻게 전달합니까?

분류에서Dev

파이썬에서 쉘 함수에 변수를 어떻게 전달합니까?

분류에서Dev

콜백 함수를 자식 구성 요소에 어떻게 전달합니까?

분류에서Dev

클래스의 함수와 변수를 setInterval에 어떻게 전달합니까?

분류에서Dev

datetime.timedelta 함수에 동적 인수를 어떻게 전달합니까?

분류에서Dev

Julia에서 열거 함수 인수를 어떻게 전달합니까?

분류에서Dev

배열의 함수에 매개 변수를 어떻게 전달합니까?

분류에서Dev

특정 선택적 인수를 어떻게 전달합니까?

분류에서Dev

.then은 어떻게 호출 함수의 결과를 약속에 전달합니까?

분류에서Dev

구조체 배열의 주소를 함수에 어떻게 전달합니까?

분류에서Dev

Mongod 필드 선택기를 JavaScript 함수에 어떻게 전달합니까?

분류에서Dev

함수를 컨텍스트 인수로 어떻게 전달합니까?

분류에서Dev

함수의 변수를 컨트롤러로 어떻게 전달합니까?

분류에서Dev

함수는 C ++에서 값으로 전달 된 매개 변수를 어떻게 수정할 수 있습니까?

분류에서Dev

KeyBinding에서 AbstractAction에 인수를 어떻게 전달합니까?

분류에서Dev

after_request에 인수를 어떻게 전달합니까?

분류에서Dev

파이썬에서 변수를 어떻게 전달합니까?

분류에서Dev

angularjs 팩토리에 변수를 어떻게 전달합니까?

분류에서Dev

두 개의 인수를 webpack에 어떻게 전달합니까?

Related 관련 기사

  1. 1

    변수 정의를 함수에 어떻게 전달합니까?

  2. 2

    transform () 함수에 함수를 인수로 어떻게 전달합니까?

  3. 3

    Java 함수에 String [] 인수를 어떻게 전달합니까?

  4. 4

    JSON 팩토리를 함수에 어떻게 전달합니까?

  5. 5

    내 메인으로 전달할 install4j에서 명령 줄 인수를 어떻게 설정합니까?

  6. 6

    함수를 다른 함수에 인수로 전달할 때 해당 함수를 어떻게 반복합니까?

  7. 7

    함수를 다른 함수에 인수로 전달할 때 해당 함수를 어떻게 반복합니까?

  8. 8

    30 일 전 ssrs에서 자세히 설명하는 함수를 어떻게 정의합니까?

  9. 9

    argv에서 pthread_create 함수로 정수를 어떻게 전달합니까? (씨)

  10. 10

    argv에서 pthread_create 함수로 정수를 어떻게 전달합니까? (씨)

  11. 11

    JavaScript / jQuery : 'this'로 요소를 함수에 어떻게 전달합니까?

  12. 12

    파이썬에서 쉘 함수에 변수를 어떻게 전달합니까?

  13. 13

    콜백 함수를 자식 구성 요소에 어떻게 전달합니까?

  14. 14

    클래스의 함수와 변수를 setInterval에 어떻게 전달합니까?

  15. 15

    datetime.timedelta 함수에 동적 인수를 어떻게 전달합니까?

  16. 16

    Julia에서 열거 함수 인수를 어떻게 전달합니까?

  17. 17

    배열의 함수에 매개 변수를 어떻게 전달합니까?

  18. 18

    특정 선택적 인수를 어떻게 전달합니까?

  19. 19

    .then은 어떻게 호출 함수의 결과를 약속에 전달합니까?

  20. 20

    구조체 배열의 주소를 함수에 어떻게 전달합니까?

  21. 21

    Mongod 필드 선택기를 JavaScript 함수에 어떻게 전달합니까?

  22. 22

    함수를 컨텍스트 인수로 어떻게 전달합니까?

  23. 23

    함수의 변수를 컨트롤러로 어떻게 전달합니까?

  24. 24

    함수는 C ++에서 값으로 전달 된 매개 변수를 어떻게 수정할 수 있습니까?

  25. 25

    KeyBinding에서 AbstractAction에 인수를 어떻게 전달합니까?

  26. 26

    after_request에 인수를 어떻게 전달합니까?

  27. 27

    파이썬에서 변수를 어떻게 전달합니까?

  28. 28

    angularjs 팩토리에 변수를 어떻게 전달합니까?

  29. 29

    두 개의 인수를 webpack에 어떻게 전달합니까?

뜨겁다태그

보관