Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Почему ifstream fail() - C++

31.03.2014, 12:28. Просмотров 474. Ответов 6
Метки нет (Все метки)

Вот код:
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
34
35
36
37
38
void Program::loadInfo()
{
    char* path = Util::getPath();
    strncat(path, "\\Data.txt", 12);
    std::vector<LinkButtonInfo*> temp;
    //std::ifstream f;
 
    //f.open(path);
    //if (f.is_open() && !f.fail())
    //{
 
        /*while (f.good() && !f.fail())
        {
            std::string s;
            std::getline(f, s);
 
            char *cstr = new char[s.length() + 1];
            strcpy(cstr, s.c_str());
 
            LinkButtonInfo* info = parseString(cstr);
            temp.push_back(info);
        }
 
        f.close();*/
 
        /*for (int j = 0; j < temp.size(); j++)
        {
            for (int i = 0; i < universe->buttons.size(); i++)
            {
                if (temp.at(j)->tag == universe->buttons.at(i)->tag)
                {
                    universe->buttons.at(i)->setLink(temp.at(j)->link);
                    break;
                }
            }
        }*/
    //}
}
Если все раскоментить то программа отлично скомпилится в Visual Studio 2013, но при запуске exe из папки Debug Пишет:"Прекращение работы программы" и вылетает. Я определил что это начинается когда появляется строчка:
C++
1
std::ifstream f;
Вопрос: почему?

Добавлено через 11 минут
Попробовал с FILE:
C++
1
FILE* f= fopen(path, "r");
Тоже самое.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 12:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему ifstream fail() (C++):

Различия ifstream::get() и ifstream::get(ch) - C++
Доброго времени суток. Была тут тема, в которой я не разобрался до конца. Код ниже проверяет баланс скобок в текстовом файле #include...

Variadic templates fail - C++
Здравствуйте. У меня проблема, нужно реализовать в проекте функционал, который будет использовать шаблоны с переменным количеством...

fail sort za 0.5 sek 100000 - C++
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; struct el { int val; ...

не работает класс в разных Source fail'ах - C++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &quot;vvodit.h&quot; using namespace std; int main() { vvodit a; ...

Fatility Fail. ini файлы и 0xc0000005 - C++
И снова здрасте! При вводе Логина (Не говоря уже о пароле) выдает ошибку &quot;&quot;&quot;&quot;Необработанное исключение в &quot;0x00011e94&quot; в &quot;iniFile.exe&quot;:...

ifstream - C++
Привет всем такая проблема ввода Student* s;// студенты s = new Student; ifstream fin(&quot;Student.txt&quot;); for(int i(0); i &lt; l;...

6
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2014, 13:39 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от lNORDl Посмотреть сообщение
Вопрос: почему?
Для начала, ошибка в попытке писать не пойми куда:
C++
1
2
char* path = Util::getPath(); // Вернул какой-то указатель ...
strncat(path, "\\Data.txt", 12); // ... но нет гарантии что туда можно писать.
Поэтому выделите сначала буфер для пути, а потом уже с ним работайте. Например так:
C++
1
2
3
char path[PATH_MAX];
strcpy( path, Util::getPath() );
strcat(path, "\\Data.txt");
Если проблема останется, есть смысл смотреть код дальше.
1
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
31.03.2014, 14:21  [ТС] #3
Осталась! Я говорю, странно именно то, что IDE все компилится отлично, а exe вылетает с ошибкой...
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2014, 14:25 #4
Цитата Сообщение от lNORDl Посмотреть сообщение
Я говорю, странно именно то, что IDE все компилится отлично
Ошибка, которую предположил Tulosba, это ошибка времени выполнения (возможны и другие, такого же плана), при таких ошибках компиляции проходит нормально.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2014, 14:27 #5
Цитата Сообщение от lNORDl Посмотреть сообщение
IDE все компилится отлично
Если код скомпилировался отлично это еще не значит, что код отличный
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2014, 14:28 #6
Выведите на консоль, что Util::getPath() возвращает.
0
lNORDl
1 / 1 / 0
Регистрация: 23.02.2014
Сообщений: 44
31.03.2014, 14:33  [ТС] #7
Все вроде заработало, просто этот getPath() используется в 2 местах я пофиксил только в 1 и забыл что этот метод дергает 2 метод.

Спасибо!
0
31.03.2014, 14:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 14:33
Привет! Вот еще темы с ответами:

fstream ifstream - C++
подключил библиотеку fstream создал объект ifstream file открыл файл, поработал(считывал до конца &lt; eof()) сделал file.close(); ...

ifstream / ofstream - C++
Доброго времени суток. И сразу к проблеме. Делаю вывод в файл объектов класса для их последующего считывания и обрабатывания. ...

не работает в ifstream - C++
Сам очень плохо разбираюсь в &lt;fstream&gt; Вот код, который должен &quot;записывать и выводить&quot; данные из ранее записанного текстового документа: ...

Объект ifstream!!! - C++
Скажите пожалуйста, почему при создании объекта ifstream(например fin) и привязке его к определенному файлу (ifstream fin(filename);), и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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