Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Morint_1
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 5
#1

Как проверить в с++ пуст файл или нет? - C++

14.11.2013, 15:32. Просмотров 1714. Ответов 5
Метки нет (Все метки)

Добрый день! Мне нужно написать программу, которая после открытия файла делает проверку, пуст этот файл или нет. Подскажите, пожалуйста, как это можно сделать на с++?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 15:32     Как проверить в с++ пуст файл или нет?
Посмотрите здесь:

Как проверить пустой файл или нет? - C++
Всем доброго времени суток, столкнулся с такой проблемой: нужно считать из файла данные и записать их в динамический список, но вот если...

Как проверить, есть файл в папке или нет? - C++
Как проверить существует файл в папке или нет? Условие. В файл будет записываться информация. Когда запускаеться программа она должна...

Проверить, пуст ли файл - C++
Как можно проверить пустоту файла? Поиск юзал. Добавлено через 17 минут fstream f; f.open("f.txt",ios::in);//открываем поток для...

Как проверить, быль ли удалён указатель или нет? - C++
С похмелья голову заклинило %-) X* x=new X(); delete x; if(x) ? или как? Как проверить, удалён на данный момент указатель...

Как проверить число это или нет (Dev C++)???? - C++
Надо проверить число это или буквы при вводе с клавиатуры.

Как узнать, что текстовый файл пуст? - C++
Обычная проверка на if(feof(f)) не работает...файл пуст- я его проверял, но пока я с пустого файла что-то не считаю feof(f) true не...

Функции. Проверить, простое число или нет. Увеличить его значение на натуральное число M. Проверить, осталось ли оно простым - C++
Помогите пожалуйста 1. Дано натуральное число N, проверить, простое оно или нет. Увеличить его значение на натуральное число M....

Проверить,число введено или нет. - C++
Ребята а как проверить ввел я число в массиве или символ???

Проверить, является ли последовательность прогрессией или нет? - C++
Дан последовательность из N целых чисел (N задаётся с клавиатуры). Проверить, является ли данная последовательность прогрессией или нет?...

Проверить, является ли введенное значение числом или нет - C++
Здрасти. как проверить число на то, является ли оно им или нет. Пробовал с помощью cin.good(), и с ней все проверяется кроме одного: если...

Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ с++ - C++
Помогите написать задачку по с++ "Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ" не понимаю, программирования в...

При вводе из файла проверить, следующая строка пустая или нет - C++
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла пустой. Допустим: >Он любил кататься на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexxx7
97 / 33 / 5
Регистрация: 24.04.2012
Сообщений: 151
14.11.2013, 15:48     Как проверить в с++ пуст файл или нет? #2
Функции библиотеки stdio.h

FILE *fopen(const char *filename, const char *mode)
Функция открывает файл, filename - путь к файлу, mode - тип доступа:
r - чтение, если файла нет, то данная функция генерирует ошибку (возвращает 0)
w - запись, если файла нет, то файл создаётся, если есть исходное содержимое удаляется
a - добавление в конец, если файла нет, то он создаётся
r+ чтение и запись (файл должен существовать)
w+ - чтение и запись (принцип работы как у w)
int feof( FILE *stream )
Функция проверяет достигнут ли конец файла, stream - указатель на открытый файл. Функция возвращает ненулевое значение, если достигнут конец файла, нуль возвращается в противном случае.
int fclose( FILE *stream )
Функция закрывает файл, stream - указатель на закрываемый файл. Если всё проходит успешно, то данная функция возвращает 0, или EOF в случае ошибки.

Достаточно?
Morint_1
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 5
14.11.2013, 16:05  [ТС]     Как проверить в с++ пуст файл или нет? #3
Нет, это не совсем то, всё это я знаю. Мы пишем программу в с++ и открываем файл по-другому. Вот так я пыталась сделать проверку после открытия файла, но она работает неправильно.

bool ReadFileB(const char* fileName){
ifstream f1;
f1.open(fileName,ios_base::in);
if (f1&&f1.is_open()){
if(f1.eof()){
return false;
} else {
return true;
}
} else {
cout << "Ошибка\n";
return false;
}
}

Хочется, чтобы если файл пуст, функция возвращала значение false.
anmartex
...
1701 / 1194 / 495
Регистрация: 12.02.2013
Сообщений: 1,978
14.11.2013, 16:33     Как проверить в с++ пуст файл или нет? #4
Цитата Сообщение от Morint_1 Посмотреть сообщение
Хочется, чтобы если файл пуст, функция возвращала значение false.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool ReadFile(const char* fileName)
{
    std::ifstream f(fileName);
    bool isRead = f.is_open();
 
    if (isRead)
    {
        f.seekg(0, std::ios_base::end);
        isRead = (f.tellg() > 0);
    }
 
    return isRead;
}
Morint_1
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 5
14.11.2013, 16:38  [ТС]     Как проверить в с++ пуст файл или нет? #5
anmartex, Спасибо огромное!
DiffEreD
1429 / 766 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
14.11.2013, 17:55     Как проверить в с++ пуст файл или нет? #6
Ну, еще как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <boost/filesystem.hpp>
 
namespace fs = boost::filesystem;
 
int main()
{
   fs::path path("D:/file.txt");
   if (fs::is_regular_file(path))
      std::cout << fs::is_empty(path) << std::endl;
   else
      return 1;
 
   return 0;
}
Yandex
Объявления
14.11.2013, 17:55     Как проверить в с++ пуст файл или нет?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru