Как проверять текстовый файл на корректные данные? - 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");
Объяснение кода листинга программы
- Проходим по файлу с помощью цикла while и функции fscanf для чтения данных из файла
- В каждой итерации цикла пытаемся прочитать значение из файла в переменную val с помощью формата
%d
- Если чтение прошло успешно и значение не равно нулю, то продолжаем цикл
- Если чтение не прошло успешно (ferror(infile) возвращает ненулевой статус), то выводим сообщение об ошибке
Error
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д