Нужна помощь в исправлении функции для поиска max_min_numbers в текстовом файле - PullRequest
0 голосов
/ 26 марта 2019

Я хочу создать функцию, с помощью которой я могу найти самое маленькое и самое большое число в текстовом файле.Проблема в том, что я не знаю, как это сделать, когда задействованы буквы и символы.Я также не понимаю, как читать число, когда оно приклеено к букве или символу.

Я в основном застрял, я создал функцию для чтения только из текстового файла с цифрами, и теперь я хочучтобы заставить его читать те же цифры, игнорируя буквы.

int max_min_numbers(FILE *fp_in, int *min) 
{ 
 rewind(fp_in); // Because it is a part of a sub-menu
 char ch; 
 int  max = 0, N; 
 while ((ch = fgetc(fp_in)) != EOF) // reading until the file is over 
 { 
  if (isdigit(ch)) // if it is a number -->
  { 
   fscanf(fp_in, "%d", &N); //reads from stream
   min = max = N; 
   if (min > ch) min = ch; //checks values 
   if (max < ch) max = ch; 
  } 
 } 
 printf("Biggest number is: %d\n", max); 
 printf("Lowest number is: %d\n", min); //prints
} 

Данные читаются: a55 5 12 3 3a;

Expected output: 55, 3;  Actual output: 51,3;

1 Ответ

0 голосов
/ 26 марта 2019

Здесь он печатает максимальное и минимальное значение и возвращает максимальное значение. Он не обрабатывает отрицательные числа. Я бы также предложил вам держаться подальше от указателей, если вы только начинаете учиться.

int max_min_numbers(FILE *fp_in, int *min) 
{ 
 rewind(fp_in); // Because it is a part of a sub-menu
 char ch; 
 int  max = 0, N = 0; 
 while ((ch = fgetc(fp_in)) != EOF) // reading until the file is over 
 { 
  if (isdigit(ch)) // if it is a number -->
  { 
   N = N*10 + ch;  //if previous digit is 2 and new digit is 3 N is set to 23
  }
  else
  {
    if (*min > N) *min = N; //checks values 
    if (max < N) max = N;
    N = 0; 
  } 
 } 
 printf("Biggest number is: %d\n", max); 
 printf("Lowest number is: %d\n", *min); //prints
 return max;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...