저는 C 언어에 익숙하며 반복적으로 스트림을 호출하고 검색 문자열이 포함되어 있는지 또는 null인지 확인하려고합니다. 나는이 검사를하는 방법을 알지 못한다. 포인터와 정수 사이의 [경고] 경고를 얻는다. 또는 [경고] 할당은 시도 할 때마다 캐스트가없는 정수로부터 포인터를 만든다. 누구든지 도와 줄 수 있습니까? 감사.C 프로그래밍, 함수 호출
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
FILE *fpntr;
char *file_pathname, *first_line;
if (argc != 2) {
fprintf(stderr, "usage: %s FILE\n", argv[0]);
return EXIT_FAILURE;
}
file_pathname = argv[1];
if ((fpntr = fopen(file_pathname, "r")) == NULL) {
fprintf(stderr, "Error opening file %s: %s\n", file_pathname, strerror(errno));
return EXIT_FAILURE;
} else {
grep_stream();
fclose(fpntr);
}
return EXIT_SUCCESS;
}
int grep_stream(FILE *fpntr, char *string, char *file_pathname) {
//warning is on next line
while ((? = get_next_line(fpntr)) == NULL) {
perror("Error reading line");
exit(EXIT_FAILURE);
}
elseif()
{
printf("First line in : %s \n %s", file_pathname, string);
}
}
char *get_next_line(FILE *fpntr) {
char *buff = malloc(101);
int pos = 0;
int next;
while ((next = fgetc(fpntr)) != '\n' && next != EOF) {
buff[pos++] = next;
}
buff[pos] = '\0';
if (buff != NULL) {
return buff;
} else
return NULL ;
}
를 먼저 제공하십시오 PLS –
서식을 수정 (또는 당신과 함께 작동합니다.) : 코드 샘플을 그 컴파일 및 실행 (또는 예정), 오류/경고를받는 행 번호. – congusbongus
둘째, EXACT 메시지를 인용하고 플래그가 지정된 EXACT 행을 식별하십시오. –