Как проверять текстовый файл на корректные данные? - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д