Я новичок в C, и я пытаюсь итеративно вызывать линию в потоке и проверять, содержит ли она мою строку поиска или если она равна нулю. Я не могу понять, как сделать эту проверку, я получаю предупреждение о том, что [Предупреждение] сравнение между указателем и целым числом или назначение [Предупреждение] делает указатель из целого без трансляции всякий раз, когда я пытаюсь это сделать. может ли кто-нибудь помочь? Благодарю.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 ;
}
первый вверх, пожалуйста исправить форматирование –
Просьба (или работать с вами.): Образец кода, компилирует и запускает (или должен), и номера строк, в которых вы получаете ошибки/предупреждения. – congusbongus
Во-вторых, укажите сообщение EXACT и определите строку EXACT, которая помечена. –