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

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

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

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

15.04.2014, 18:43. Просмотров 616. Ответов 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++):

Проверка наличия соединения с интернет, VC++ - C++
Здравствуйте. 1.Подскажите пожалуйста, как я могу проверить, подключен ли компьютер к интернет, и отследить состояние подключения (Т.е....

Проверка наличия символов в строке - C++
Задача состоит в том чтобы проверить встречаются ли нужные нам символы в строке, я попробовал сделать ф-цию поиска и четыре раза прогнать...

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

Проверка наличия слова в тексте - C++
на javascript есть вот такой простой способ проверки /Hello/.test('Hello World'); // true /Hi/.test('Hello World'); //false есть ли...

Проверка наличия определенных цифр в числе - C++
int n,kn = 0,kc = 0,a,b; cout&lt;&lt;&quot;Введите натуральное число:&quot;; cin &gt;&gt;n; cout &lt;&lt;&quot;Введите A:&quot;; cin &gt;&gt;a; cout &lt;&lt;&quot;Введите...

Проверка наличия двух пар среди выданных игроку карт - C++
Можно ли оптимизировать алгоритм этой функции? У меня извечная проблема... когда я напишу функцию или часть кода в программе и он...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6360 / 5924 / 1921
Регистрация: 18.12.2011
Сообщений: 15,228
Завершенные тесты: 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
Модератор
Эксперт С++
6360 / 5924 / 1921
Регистрация: 18.12.2011
Сообщений: 15,228
Завершенные тесты: 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
  ...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 21:17
Привет! Вот еще темы с ответами:

Проверка файла - C++
// ifstream ifs(&quot;input.txt&quot;); ofstream ofs(&quot;output.txt&quot;); //повторяем,пока нету файла while(!ifs) { cout...

Проверка текстового файла - C++
Мне нужны 2 условия: если файл пустой и (кто бы мог подумать?) НЕ пустой. Как проверить файл на его содержимое с помощью fstream?

Проверка файла на пустоту - C++
void Add_New_User() { FILE *Fptr = fopen(&quot;New_User.txt&quot;, &quot;r&quot;); if ((Fptr = fopen(&quot;New_User.txt&quot;, &quot;r&quot;)) == 0) { ...

Проверка файла на пустоту - C++
Здравствуйте, нужно сделать проверку на пустоту, если файл пуст то идет одна ветка,если не пуст ,то другая std::fstream...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.04.2014, 21:17
Ответ Создать тему
Опции темы

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