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

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

Войти
Регистрация
Восстановить пароль
 
greendaizer
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 70
#1

Проверка наличия файла - C++

15.04.2014, 18:43. Просмотров 519. Ответов 3
Метки нет (Все метки)

Такая ситуация: есть файл с определённым именем
C++
1
2
3
4
5
6
7
8
9
10
void StarSystem::load(string inputName)
{
stringstream ss;
ss.str("");
ss<<inputName<< ".txt";
ifstream input;
input.open(ss.str().c_str());
...
...
}
Допустим, какой-то example.txt, программа ищет его и открывает (точнее, этот кусочек программы). Нужно сделать так, чтобы если файл с таким именем отсутствует, то программа выводила бы сообщение об ошибке. Подскажите, как это можно реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 18:43     Проверка наличия файла
Посмотрите здесь:

Проверка наличия символов в строке C++
C++ Проверка файла на пустоту
Проверка файла C++
C++ Проверка открытия файла
Проверка наличия соединения с интернет, VC++ C++
Проверка наличия двух пар среди выданных игроку карт C++
Проверка наличия файлов в директории C++
C++ Проверка на наличие файла
Проверка наличия слова в тексте C++
Проверка файла на пустоту C++
C++ Проверка на пустоту файла С++
Проверка существования файла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,994
Завершенные тесты: 1
15.04.2014, 18:52     Проверка наличия файла #2
C++
1
2
3
4
ifstream input;
input.open( ss.str().c_str() );
if( input.bad() )
      cout<<"Open Error";
greendaizer
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 70
15.04.2014, 19:10  [ТС]     Проверка наличия файла #3
zss, мы вставили это в наш метод вот таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void StarSystem::load(string inputName)
{
stringstream ss;
ss.str("");
ss<<inputName<< ".txt";
ifstream input;
input.open(ss.str().c_str());
if( input.bad() )
 
 cout<<"Open Error";
else
{
 
systemExists = true; 
input>>name;
if (!input.eof())
{
 starExists = true;
 input>>theStar.name>>theStar.place.x>>theStar.place.y;
Planet inputPlanet;
 
 
 
   while (!input.eof()) 
 
        {
                input>>inputPlanet.name>>inputPlanet.place.x>>inputPlanet.place.y;
    planets.push_back(inputPlanet);
        }
 
}
}
}
Вообще, думаем, что это должно работать, но у нас это не прокатывает. Программа оснащена менюшкой, и для загрузки звёздной системы по вышеописанному методу (который считывает данные из файла) нужно нажать клавишу. При наличии такого файла программа работает нормально, но при его отсутствии зависает, не выводя сообщение об ошибке, и работу с меню продолжить невозможно. В чём может быть проблема?
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,994
Завершенные тесты: 1
15.04.2014, 21:17     Проверка наличия файла #4
Можно использовать, что определена операция логического отрицания для потока:
C++
1
2
3
4
5
6
fstream input;
input.open(ss.str().c_str());
if( !input )
    cout<<"Open Error";
else
  ...
Yandex
Объявления
15.04.2014, 21:17     Проверка наличия файла
Ответ Создать тему
Опции темы

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