Как проверять текстовый файл на корректные данные? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Размерность вводится до открытия файла.Язык СИ В книгах да и в интерене попадается одна проверка на существование файла
f1=fopen(nameIn,"r")) == 0
Как проверить файл на корректность данных?вот в файле матрица
1 2 3
4 5 6
7 8 9
А если скажем будет буква,как это проверить?
1 2 3
4 d 6
7 8 9
Ниже код работы с файлом
{
       int *masiv = (int*)malloc(sizeof(int) * (n*n));
           printf("\n");
           printf("Vvedite  imy faila: ");
           scanf("%s",nameIn);
           while( (f1=fopen(nameIn,"r")) == 0 )
           {
                 printf("\nError.Fail ne naiden\n");
                 printf("\nVvedite  imy faila: ");
                 scanf("%s",nameIn);
 
           }
      i=0;
      while(fscanf(f1,"%i",&masiv[i])!=EOF)//пока не дошли до конца,увеличиваем счетчик
      {
                 i++;
      }
      if( i < (n*n) || i > (n*n) )            //"странноватая проверка"====================
                     {
                       printf("Error.Dannye nekorektny");
                       getch();
                       return 0;
                     }      
      p=0;
      for(i=0;i<n;i++)
      {
          for(j=0;j<n;j++)
          {
                A[i][j]=masiv[p];
                p++;
          }
      }

Решение задачи: «Как проверять текстовый файл на корректные данные?»

textual
Листинг программы
while ( (ret = fscanf(infile, "%d", &val)) == 1 ) ;
if ( ret == 0 && !ferror(infile) ) 
   printf("Error\n");

Объяснение кода листинга программы

  1. Проходим по файлу с помощью цикла while и функции fscanf для чтения данных из файла
  2. В каждой итерации цикла пытаемся прочитать значение из файла в переменную val с помощью формата %d
  3. Если чтение прошло успешно и значение не равно нулю, то продолжаем цикл
  4. Если чтение не прошло успешно (ferror(infile) возвращает ненулевой статус), то выводим сообщение об ошибке Error

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы