Определение того, действительно ли вводимый и считываемый файл пуст

#c #scanf #gets #isspace

#c #scanf #возвращает #isspace

Вопрос:

Я написал эту функцию void для проверки правильности считываемых входных файлов, но есть одна вещь, которую я не знаю, как реализовать. fseek и ftell используются для определения, является ли файл пустым или нет, но если файл заполнен пробелами или табуляциями, он будет считаться не пустым (хотя это так).

Входные файлы будут содержать целые числа и / или строки word. Итак, есть ли способ проверить, содержит ли весь файл какие-либо целые числа или строки или иным образом содержит только пробелы?

Я полагаю, мне, возможно, придется использовать либо scanf_s, либо gets с isspace…

 FILE *inp;

/* Checks to see if file can be read */
errCode = fopen_s(amp;inp, file_location, "r");
if (errCode != 0) {
    printf(" ERROR. File %s was not located, ensure the following directory is valid: %snn ", file_name, file_location);
    *file_Error = ERROR;
    return;
}

/*Move to end of file*/
fseek(inp, 0, SEEK_END);

/*Set filesize to size at end of file*/
fileSize = ftell(inp);

/*Print error and exit if filesize is zero i.e. contains 0 bytes (no data)*/
if (fileSize == 0) {
    fclose(inp);
    printf(" ERROR. File %s contains no data. (File size = %d bytes)nn ", file_name, fileSize);
    *file_Error = ERROR;
    return;
}

/*Print error and exit if filesize is zero for .dats containing only spaces or t i.e. contains 0 bytes (no data)*/

/*Reset to beginning of file for reading*/
fseek(inp, 0, SEEK_SET);

/* Checks for error reading file occured */
if (errCode != 0) {
    printf(" Error opening file %s.nn ", file_name);
    *file_Error = ERROR;
    return;
}

/*if no error on file*/
else
{
    printf_s(" File %s Opened.nn", file_name);
    *file_Error = 0;
}
  

Комментарии:

1. Единственный способ проверить, содержит ли непустой файл допустимые данные, — это прочитать и проверить данные.

2. Ваш код слишком сложный, просто прочитайте и подтвердите данные во время чтения. Нет необходимости обрабатывать случай пустого файла (один из длины 0).

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